JAVA 생 성 및 해석 테이프 에 괄호 가 있 는 JSON 데이터

7072 단어 자바
원본 링크:https://www.cnblogs.com/garfieldcgf/p/5967590.html
1. json 간단 한 소개
  1.1 json 은 가장 유행 하고 광범 위 하 게 통용 되 는 데이터 전송 형식 으로 자바 스 크 립 트 Object Notation 이 라 고 부 르 며 최초 로 자바 스 크 립 트 에서 사용 되 었 습 니 다.
1.2 예 를 들 어 다음은 제 이 슨 의 대상 이 고 이름 은 왕 니 마 입 니 다. 그 는 두 명의 팬 이 배열 을 구성 하 는데 하 나 는 왕 군 이 고 하 나 는 작은 니 마 입 니 다.
    {
"name": "왕 니 마",
      "fans":[{
"name": "왕 군",
            "age":"7"
           },{
"name": "작은 니 마",
            "age":"10"
           }]
      }
2. json 데이터 생 성 및 분석
2.1 제 이 슨 이 처리 하 는 가방 은 여러 가지 가 있 습 니 다. 오픈 소스 잭 슨, 구 글 Gson, 알 리 바 바 의 Fastjson. Gson 은 기능 이 강하 지만 Fastjson 의 성능 이 빠 릅 니 다. 어떻게 하면 현명 한 견 해 를 선택 할 수 있 습 니까?
2.2 여기 서 저 는 처음에 org. json 을 사 용 했 습 니 다. 그 다음 에 복잡 한 json 을 보 여주 기 위해 자바 bean 으로 전환 하고 기능 이 강 한 Gjson 을 가 져 왔 습 니 다. 먼저 두 개의 maven 의존 도 를 첨부 합 니 다.
 
    
        
            org.json
            json
            20160810
        
        
        
            com.google.code.gson
            gson
            2.7
        

 
2.3 제 이 슨 데이터 의 생 성, 즉 각종 유형의 제 이 슨 (String, map 와 자바 bean)
       DemoCreateJson.java

import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by garfield on 2016/10/16.
 *      json   
 */
public class DemoCreateJson {
    public static void main(String[] args) {
        StringCreateJson();
        mapCreateJson();
        beanCreateJson();
    }
    //String  json
    /**
     * {
           "name":"   ",
           "fans":[{
                 "name":"  ",
                 "age":"7"
                },{
                 "name":"   ",
                 "age":"10"
                }]
           }
     */
    static void StringCreateJson(){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name","   ");

        //      ,      json
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("name","  ");
        jsonObject1.put("age",7);

        JSONObject jsonObject2 = new JSONObject();
        jsonObject2.put("name","   ");
        jsonObject2.put("age",10);

        //         list json       
        List jsonObjects = new ArrayList();
        jsonObjects.add(jsonObject1);
        jsonObjects.add(jsonObject2);
        jsonObject.put("fans",jsonObjects);

        System.out.println("jsonObject    json:" + jsonObject);
    }
    //     , map  
    static void mapCreateJson(){
        Map map = new HashMap();
        map.put("name","   ");
        Map map1 = new HashMap();
        map1.put("name","  ");
        map1.put("age",7);
        Map map2 = new HashMap();
        map2.put("name","   ");
        map2.put("age",10);
        List jsonObjects = new ArrayList();
        jsonObjects.add(map1);
        jsonObjects.add(map2);
        map.put("fans",jsonObjects);
        System.out.println("   Map  json  :" + new JSONObject(map));
    }
    //   ,       , bean  ,(     map   json,         bean  ,   Gjson  )
    static void beanCreateJson(){
        Actor actor = new Actor();
        actor.setName("   ");
        Map map1 = new HashMap();
        map1.put("name","  ");
        map1.put("age",7);
        Map map2 = new HashMap();
        map2.put("name","   ");
        map2.put("age",10);
        List maps = new ArrayList();
        maps.add(map1);
        maps.add(map2);
        actor.setFans(maps);
        System.out.println("java bean  json  :" + new JSONObject(actor));
    }
}

 
2.3.1 상위 클래스 에 기본 bean 이 부족 함
Actor.java
 
import java.util.List;
import java.util.Map;

/**
 * Created by garfield on 2016/10/16.
 */
public class Actor {
    private String name;
    private List fans;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List getFans() {
        return fans;
    }

    public void setFans(List fans) {
        this.fans = fans;
    }

}

 
2.4 제 이 슨 의 해석, 여기에 두 가지 해석 방식 을 썼 습 니 다. 마찬가지 로 자주 사용 하 는 것 은 두 번 째 입 니 다. 제 이 슨 은 자바 bean 으로 전환 합 니 다.
DemoParseJson.java
 
import com.google.gson.*;
import org.json.JSONObject;

import java.util.Map;

/**
 * Created by garfield on 2016/10/16.
 */
public class DemoParseJson {
    public static void main(String[] args) {
        String jsonString = "{\"fans\":[{\"name\":\"  \",\"age\":7},{\"name\":\"   \",\"age\":10}],\"name\":\"   \"}";
        normalParse(jsonString);
        beanParse(jsonString);
    }
    static void normalParse(String jsonString){
        JSONObject jsonObject = new JSONObject(jsonString);
        //      
        System.out.println("  :");
        System.out.println("  " + jsonObject.getString("name"));
        //    
        System.out.println("  :");
        for (Object fan : jsonObject.getJSONArray("fans")) {
            JSONObject object = (JSONObject)fan;
            System.out.println("    :" + object.get("name") + ",  :" + object.get("age"));
        }
    }
    //org.json         bean  ,        gson  
    static void beanParse(String jsonString){
        System.out.println("=========Gson  =========");
        JsonObject obj = new JsonParser().parse(jsonString).getAsJsonObject();
        Actor actor = new Gson().fromJson(obj,Actor.class);
        System.out.println("  :");
        System.out.println("  " + obj.get("name"));
        System.out.println("  :");
        for (Map map : actor.getFans()) {
            System.out.println("    :" + map.get("name") + "  :" + map.get("age"));
        }
    }
}

 
2.4.1 집행 결 과 를 첨부 한다.
 
  :
     
  :
    :  ,  :7
    :   ,  :10
=========Gson  =========
  :
  "   "
  :
    :    7.0
    :     10.0

좋은 웹페이지 즐겨찾기