java fastjson

作者:原创时间:2022-03-30
文档

很多朋友都想知道java fastjson是什么?下面就一起来了解一下吧~

1、FastJson的介绍:

  JSON(javaScript Object Notation)是一种轻量级的数据交换格式。主要采用键值对({"name": "json"})的方式来保存和表示数据。JSON是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质上是一个字符串。

  JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源JSON解析库,可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。是一个极其优秀的Json框架,Github地址: FastJson

2、FastJson的特点:

1.FastJson数度快,无论序列化和反序列化,都是当之无愧的fast 
2.功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum) 
3.零依赖(没有依赖其它任何类库)

3、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}]}";

4、简单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);
}

5、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);
}

6、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);
}

7、复杂JavaBean_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);
}

总结

// 把JSON文本parse为JSONObject或者JSONArray
        public static final Object parse(String text);  
        // 把JSON文本parse成JSONObject
        public static final JSONObject parseObject(String text);
        // 把JSON文本parse为JavaBean
        public static final  T parseObject(String text, Class clazz); 
        // 把JSON文本parse成JSONArray
        public static final JSONArray parseArray(String text); 
        //把JSON文本parse成JavaBean集合
        public static final  List parseArray(String text, Class clazz);     
        // 将JavaBean序列化为JSON文本
        public static final String toJSONString(Object object);       
        // 将JavaBean序列化为带格式的JSON文本
        public static final String toJSONString(Object object, boolean prettyFormat); 
        //将JavaBean转换为JSONObject或者JSONArray。
        public static final Object toJSON(Object javaObject);

以上就是小编今天的分享,希望可以帮到大家。

显示全文
java feign java divide java field java field获取值 java dockerfile java file.exists() java fileinputstream java findfirst java flatmap java dowhile java flink java drools java dto java dynamic java flume java ear java foreach循环 java fork java ecc加密 java formatter java dict java development java fastdfs java dev java dependency java调用asmx接口 java delete java获取绝对值 java调用c++ java调用c++接口 java delegate java decodeuri java decode java调python java decaf java读取本地excel java读取json java dataset java规则引擎 java dataframe