고성능 JSON 프레임워크의FastJson의 간단한 사용

12559 단어
1. 앞말
1.1.FastJson 소개:
JSON 프로토콜의 사용이 편리하고 점점 유행하고 있습니다. JSON의 프로세서가 많습니다. 여기서 제가 FastJson을 소개하겠습니다. FastJson은 아리의 기원 프레임워크로 많은 기업에서 사용되고 매우 우수한 Json 프레임워크입니다. Github 주소: FastJson
1.2.FastJson의 특징:
1.FastJson 수량이 빠르고 서열화와 반서열화를 막론하고 모두 부끄럽지 않은fast2.강력한 기능(JDK 클래스에는 Java Bean Class, Collection, Map, Date 또는 enum이 모두 포함됨) 3.제로 의존 (다른 라이브러리에 의존하지 않음)
1.3.FastJson에 대한 간단한 설명:
FastJson은 json 형식 문자열에 대한 해석에 주로 다음과 같은 세 가지 종류를 사용했다.JSON:fastJson의 해상도, JSON 형식 문자열과 JSON 대상 및javaBean 사이의 변환에 사용 2.JSONObject:fastJson에서 제공하는 json 대상 3.JSONarray:fastJson에서 json 배열 객체 제공
2. FastJson의 사용법
우선 세 개의 json 형식의 문자열을 정의합니다
//json   -     
private static final String  JSON_OBJ_STR = "{\"studentName\":\"lily\",\"studentAge\":12}";

//json   -    
private static final String  JSON_ARRAY_STR = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";

//    json   
private static final String  COMPLEX_JSON_STR = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";

2.1.JSON 형식 문자열과 JSON 객체 간의 변환
2.1.1.json 문자열 - 단순 객체와 JSONObject 간의 변환
/**
 * json   -      JSONObject   
 */
@Test
public void testJSONStrToJSONObject() {

    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);

    System.out.println("studentName:  " + jsonObject.getString("studentName") + ":" + "  studentAge:  "
            + jsonObject.getInteger("studentAge"));

}

/**
 * JSONObject json   -        
 */
@Test
public void testJSONObjectToJSONStr() {

    //  JSONObject,      json   
    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
    //      
    String jsonString = JSONObject.toJSONString(jsonObject);

    //      
    //String jsonString = jsonObject.toJSONString();
    System.out.println(jsonString);
}

2.1.2.json 문자열(배열 유형)과 JSONarray 사이의 변환
/**
 * json   -     JSONArray   
 */
@Test
public void testJSONStrToJSONArray() {

    JSONArray jsonArray = JSONArray.parseArray(JSON_ARRAY_STR);

    //    1
    int size = jsonArray.size();
    for (int i = 0; i < size; i++) {

        JSONObject jsonObject = jsonArray.getJSONObject(i);
        System.out.println("studentName:  " + jsonObject.getString("studentName") + ":" + "  studentAge:  "
                + jsonObject.getInteger("studentAge"));
    }

    //    2
    for (Object obj : jsonArray) {

        JSONObject jsonObject = (JSONObject) obj;
        System.out.println("studentName:  " + jsonObject.getString("studentName") + ":" + "  studentAge:  "
                + jsonObject.getInteger("studentAge"));
    }
}

/**
 * JSONArray json   -       
 */
@Test
public void testJSONArrayToJSONStr() {

    //  JSONArray,      json   
    JSONArray jsonArray = JSONArray.parseArray(JSON_ARRAY_STR);
    //     
    String jsonString = JSONArray.toJSONString(jsonArray);

    //      
    //String jsonString = jsonArray.toJSONString(jsonArray);
    System.out.println(jsonString);
}

2.1.3.복잡한 json 형식 문자열과 JSONObject 사이의 변환
/**
 *   json      JSONObject   
 */
@Test
public void testComplexJSONStrToJSONObject() {

    JSONObject jsonObject = JSONObject.parseObject(COMPLEX_JSON_STR);

    String teacherName = jsonObject.getString("teacherName");
    Integer teacherAge = jsonObject.getInteger("teacherAge");

    System.out.println("teacherName:  " + teacherName + "   teacherAge:  " + teacherAge);

    JSONObject jsonObjectcourse = jsonObject.getJSONObject("course");
     //  JSONObject    
    String courseName = jsonObjectcourse.getString("courseName");
    Integer code = jsonObjectcourse.getInteger("code");

    System.out.println("courseName:  " + courseName + "   code:  " + code);

    JSONArray jsonArraystudents = jsonObject.getJSONArray("students");

    //  JSONArray
    for (Object object : jsonArraystudents) {

        JSONObject jsonObjectone = (JSONObject) object;
        String studentName = jsonObjectone.getString("studentName");
        Integer studentAge = jsonObjectone.getInteger("studentAge");

        System.out.println("studentName:  " + studentName + "   studentAge:  " + studentAge);
    }
}

/**
 *   JSONObject json        
 */
@Test
public void testJSONObjectToComplexJSONStr() {

   //  JSONObject,      json   
    JSONObject jsonObject = JSONObject.parseObject(COMPLEX_JSON_STR);

    //     
    //String jsonString = JSONObject.toJSONString(jsonObject);

    //     
    String jsonString = jsonObject.toJSONString();
    System.out.println(jsonString);

}

2.2.JSON 형식 문자열과 javaBean 사이의 변환
2.2.1.json 문자열 - 간단한 대상형과javaBean 사이의 변환
/**
 * json   -     JavaBean     
 */
@Test
public void testJSONStrToJavaBeanObj() {

    //     
    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);

    String studentName = jsonObject.getString("studentName");
    Integer studentAge = jsonObject.getInteger("studentAge");

    //Student student = new Student(studentName, studentAge);

    //     ,  TypeReference ,         protected    ,      
    //Student student = JSONObject.parseObject(JSON_OBJ_STR, new TypeReference() {});

    //     ,  Gson   
    Student student = JSONObject.parseObject(JSON_OBJ_STR, Student.class);

    System.out.println(student);
}

/**
 * JavaBean json   -       
 */
@Test
public void testJavaBeanObjToJSONStr() {

    Student student = new Student("lily", 12);
    String jsonString = JSONObject.toJSONString(student);
    System.out.println(jsonString);
}

2.2.2.json 문자열 - 그룹 형식과 자바빈 사이의 변환
/**
 * json   -     JavaBean_List   
 */
@Test
public void testJSONStrToJavaBeanList() {

    //     
    JSONArray jsonArray = JSONArray.parseArray(JSON_ARRAY_STR);

    //  JSONArray
    List students = new ArrayList();
    Student student = null;
    for (Object object : jsonArray) {

        JSONObject jsonObjectone = (JSONObject) object;
        String studentName = jsonObjectone.getString("studentName");
        Integer studentAge = jsonObjectone.getInteger("studentAge");

        student = new Student(studentName,studentAge);
        students.add(student);
    }

    System.out.println("students:  " + students);


    //     ,  TypeReference ,         protected    ,      
    List studentList = JSONArray.parseObject(JSON_ARRAY_STR, new TypeReference>() {});
    System.out.println("studentList:  " + studentList);

    //     ,  Gson   
    List studentList1 = JSONArray.parseArray(JSON_ARRAY_STR, Student.class);
    System.out.println("studentList1:  " + studentList1);

}

/**
 * JavaBean_List json   -       
 */
@Test
public void testJavaBeanListToJSONStr() {

    Student student = new Student("lily", 12);
    Student studenttwo = new Student("lucy", 15);

    List students = new ArrayList();
    students.add(student);
    students.add(studenttwo);

    String jsonString = JSONArray.toJSONString(students);
    System.out.println(jsonString);

}

2.2.3.복잡한 json 형식 문자열과javaBean 사이의 변환
/**
 *   json      JavaBean_obj   
 */
@Test
public void testComplexJSONStrToJavaBean(){

    //     ,  TypeReference ,         protected    ,      
    Teacher teacher = JSONObject.parseObject(COMPLEX_JSON_STR, new TypeReference() {});
    System.out.println(teacher);

    //     ,  Gson  
    Teacher teacher1 = JSONObject.parseObject(COMPLEX_JSON_STR, Teacher.class);
    System.out.println(teacher1);
}

/**
 *   JavaBean_obj json        
 */
@Test
public void testJavaBeanToComplexJSONStr(){

    //    JavaBean_obj
    Teacher teacher = JSONObject.parseObject(COMPLEX_JSON_STR, new TypeReference() {});
    String jsonString = JSONObject.toJSONString(teacher);
    System.out.println(jsonString);
}

2.3.javaBean과 json 대상 사이의 변환
2.3.1.간단한javaBean과 json 대상 사이의 변환
/**
 *   JavaBean_obj json     
 */
@Test
public void testJavaBeanToJSONObject(){

    //    JavaBean_obj
    Student student = new Student("lily", 12);

    //   
    String jsonString = JSONObject.toJSONString(student);
    JSONObject jsonObject = JSONObject.parseObject(jsonString);
    System.out.println(jsonObject);

    //   
    JSONObject jsonObject1 = (JSONObject) JSONObject.toJSON(student);
    System.out.println(jsonObject1);
}

/**
 *   json   JavaBean_obj   
 */
@Test
public void testJSONObjectToJavaBean(){

    //    json  
    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);

    //     ,  TypeReference ,         protected    ,      
    Student student = JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference() {});
    System.out.println(student);

    //     ,  Gson   
    Student student1 = JSONObject.parseObject(jsonObject.toJSONString(), Student.class);
    System.out.println(student1);
}

2.3.2.JavaList와 JsonArray 사이의 전환
/**
 * JavaList JsonArray   
 */
@Test
public void testJavaListToJsonArray() {

    //  JavaList
    Student student = new Student("lily", 12);
    Student studenttwo = new Student("lucy", 15);

    List students = new ArrayList();
    students.add(student);
    students.add(studenttwo);

    //   
    String jsonString = JSONArray.toJSONString(students);
    JSONArray jsonArray = JSONArray.parseArray(jsonString);
    System.out.println(jsonArray);

    //   
    JSONArray jsonArray1 = (JSONArray) JSONArray.toJSON(students);
    System.out.println(jsonArray1);
}

/**
 * JsonArray JavaList   
 */
@Test
public void testJsonArrayToJavaList() {

    //  JsonArray
    JSONArray jsonArray = JSONArray.parseArray(JSON_ARRAY_STR);

    //     ,  TypeReference ,         protected    ,      
    ArrayList students = JSONArray.parseObject(jsonArray.toJSONString(),
            new TypeReference>() {});

    System.out.println(students);

    //     ,  Gson   
    List students1 = JSONArray.parseArray(jsonArray.toJSONString(), Student.class);
    System.out.println(students1);
}

2.3.3.복잡한 자바빈obj와 json 대상 사이의 변환
/**
 *   JavaBean_obj json     
 */
@Test
public void testComplexJavaBeanToJSONObject() {

    //    JavaBean_obj
    Student student = new Student("lily", 12);
    Student studenttwo = new Student("lucy", 15);

    List students = new ArrayList();
    students.add(student);
    students.add(studenttwo);
    Course course = new Course("english", 1270);

    Teacher teacher = new Teacher("crystall", 27, course, students);

    //   
    String jsonString = JSONObject.toJSONString(teacher);
    JSONObject jsonObject = JSONObject.parseObject(jsonString);
    System.out.println(jsonObject);

    //   
    JSONObject jsonObject1 = (JSONObject) JSONObject.toJSON(teacher);
    System.out.println(jsonObject1);

}

/**
 *   json   JavaBean_obj   
 */
@Test
public void testComplexJSONObjectToJavaBean() {

    //    json  
    JSONObject jsonObject = JSONObject.parseObject(COMPLEX_JSON_STR);

    //     ,  TypeReference ,         protected    ,      
    Teacher teacher = JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference() {});
    System.out.println(teacher);

    //     ,  Gson   
    Teacher teacher1 = JSONObject.parseObject(jsonObject.toJSONString(), Teacher.class);
    System.out.println(teacher1);
}

3. 원본 코드
이 블로그의 원본 코드는 모두 Github에 있습니다.FastJson Demo,Fork and Star를 환영합니다!
4. 요약
자, FastJson의 기본적인 용법은 소개가 끝났습니다. 장미를 선물하고 손에 여향을 남기며 공부는 저를 즐겁게 합니다. 공유는 여러분을 즐겁게 합니다. 여러분의 칭찬과 소장을 환영합니다!

좋은 웹페이지 즐겨찾기