흔히 볼 수 있는 세 가지 json 조작 도구(jackson, gson,fastjson)

9073 단어 json
잭슨
잭슨 1.x 시리즈 및 2.x 시리즈, 2.x 시리즈는 3개의jar백을 다운로드해야 한다:jackson-core-2.2.3.jar(핵심jar 패키지)jackson-annotations-2.2.3.jar (이 패키지는 Json 주석 지원을 제공합니다) jackson-databind-2.2.3.jar (상기 두 개 포함)
maven 의존

    com.fasterxml.jackson.core
    jackson-databind
    2.5.3

편폭과 시간 때문에 모델을 쓰지 않습니다.list,map으로 대체합니다
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * json    
 *
 * @Author: Mr_li
 * @CreateDate: 2018-11-07$ 14:48$
 * @Version: 1.0
 */
public class JackSonTestCase {

    private static ObjectMapper mapper = new ObjectMapper();
    /**
     *     
     */
    static class getData {

        Map map = new HashMap();

        List list = new ArrayList<>();

        List> listMap = new ArrayList>();

        public Map getMap() {
            map.put("name", "  ");
            map.put("age", "18");
            return map;
        }

        public List getList() {
            list.add("a");
            list.add("b");
            return list;
        }

        public List> getListMap() {
            listMap.add(getMap());
            return listMap;
        }
    }

    /**
     * ObjectMapper JSON     ,Jackson   JSON     ObjectMapper   。
     * ObjectMapper   JSON      ,   JSON     File、OutputStream       。
     * writeValue(File arg0, Object arg1) arg1  json  ,    arg0   。
     * writeValue(OutputStream arg0, Object arg1) arg1  json  ,    arg0    。
     * writeValueAsBytes(Object arg0) arg0  json  ,           。
     * writeValueAsString(Object arg0) arg0  json  ,          。
     */
    public static void test() throws IOException {
        //javaObj-->>jsonStr
        String json = mapper.writeValueAsString(new getData().getMap());

        //jsonStr-->>jsonObj
        String json1 = "{ \"brand\" : \"Mercedes\", \"doors\" : 5 }";
        //1
        Object o = mapper.readValue(json, Object.class);
        //2
        List> beanList = mapper.readValue(json, new TypeReference>>() {
        });
    }

    public static void main(String[] args) throws IOException {
        JackSonTestCase.test();
    }
}

2fastjson
fastJson은 json 형식 문자열에 대한 해석에 주로 세 가지 클래스를 사용했다.
JSON:fastJson의 해상도입니다. JSON 형식 문자열과 JSON 대상 및javaBean 사이의 변환에 사용됩니다.
JSONObject:fastJson에서 제공하는 json 객체입니다.
JSONarray:fastJson은 json 배열 객체를 제공합니다.
maven 의존

    com.alibaba
    fastjson
    1.2.51

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * json    
 *
 * @Author: Mr_li
 * @CreateDate: 2018-11-07$ 14:48$
 * @Version: 1.0
 */
public class FastjsonTestCase {

    private static JSONObject jsonObject = new JSONObject();

    private static JSONArray jsonArr = new JSONArray();

    class Student {

        private String studentName;
        private Integer studentAge;

        public String getStudentName() {
            return studentName;
        }

        public void setStudentName(String studentName) {
            this.studentName = studentName;
        }

        public Integer getStudentAge() {
            return studentAge;
        }

        public void setStudentAge(Integer studentAge) {
            this.studentAge = studentAge;
        }
    }

    /**
     *     
     */
    static class getData {

        Map map = new HashMap();

        List list = new ArrayList<>();

        List> listMap = new ArrayList>();

        public Map getMap() {
            map.put("name", "  ");
            map.put("age", "18");
            return map;
        }

        public List getList() {
            list.add("a");
            list.add("b");
            return list;
        }

        public List> getListMap() {
            listMap.add(getMap());
            return listMap;
        }
    }

    public static void test() throws IOException {
        //jsonStr-->>jsonObj
        String json1 = "{\"studentName\":\"lily\",\"studentAge\":12}";
        JSONObject jsonObject = JSON.parseObject(json1);

        //jsonStr-->>jsonArray
        String json2 = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";
        JSONArray jsonArray = JSON.parseArray(json1);

        //jsonstr-->>javaObj
        Student student = JSON.parseObject(json2, Student.class);
        List list = new ArrayList();
        ArrayList list1 = (ArrayList) JSONObject.parseObject(json2, List.class);

        //javaObj-->>jsonStr
        String jsonString = JSON.toJSONString(student);


    }

    public static void main(String[] args) throws IOException {
        FastjsonTestCase.test();
    }
}

3g son
현재 인터넷에는 많은 인터페이스가 Json 형식이다. Gson은 구글에서 개발한 Json 해석 라이브러리로 자바 대상을 Json 문자열로 쉽게 변환할 수도 있고 Json 문자열을 자바 대상으로 쉽게 변환할 수도 있다.

    com.google.code.gson
    gson
    2.8.5

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * json    
 *
 * @Author: Mr_li
 * @CreateDate: 2018-11-07$ 14:48$
 * @Version: 1.0
 */
public class GsonTestCase {

    private static Gson gson = new Gson();

    private static JsonParser parser = new JsonParser();

    class Student {

        private String studentName;
        private Integer studentAge;

        public String getStudentName() {
            return studentName;
        }

        public void setStudentName(String studentName) {
            this.studentName = studentName;
        }

        public Integer getStudentAge() {
            return studentAge;
        }

        public void setStudentAge(Integer studentAge) {
            this.studentAge = studentAge;
        }
    }

    /**
     *     
     */
    static class getData {

        Map map = new HashMap();

        List list = new ArrayList<>();

        List> listMap = new ArrayList>();

        public Map getMap() {
            map.put("name", "  ");
            map.put("age", "18");
            return map;
        }

        public List getList() {
            list.add("a");
            list.add("b");
            return list;
        }

        public List> getListMap() {
            listMap.add(getMap());
            return listMap;
        }
    }

    public static void test() throws IOException {
        //jsonStr-->>jsonObj
        String json1 = "{\"studentName\":\"lily\",\"studentAge\":12}";
        JsonObject jsonObject = (JsonObject) parser.parse(json1);

        JsonElement parse = parser.parse(json1);
        JsonObject asJsonObject = parse.getAsJsonObject();

        //jsonStr-->>jsonArray
        String json2 = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";
        JsonArray jsonArray = (JsonArray) parser.parse(json1);

        JsonElement parse1 = parser.parse(json1);
        JsonArray asJsonArray = parse1.getAsJsonArray();

        //jsonStr-->>javaObj
        Student student = new Gson().fromJson(json1, Student.class);
        HashMap studentHashMap = gson.fromJson(json1, new TypeToken>() {
        }.getType());

        //javaObj-->>jsonStr
        String json = gson.toJson(student);


    }

    public static void main(String[] args) throws IOException {
        GsonTestCase.test();
    }
}

perfect!!!
 

좋은 웹페이지 즐겨찾기