千家信息网

java中FastJson的特点及用法

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"java中FastJson的特点及用法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java中FastJson的特点及用法"吧!目录1.
千家信息网最后更新 2025年01月18日java中FastJson的特点及用法

本篇内容主要讲解"java中FastJson的特点及用法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java中FastJson的特点及用法"吧!

目录
  • 1.前言

    • 1.1.FastJson的介绍:

    • 1.2.FastJson的特点:

    • 1.3.FastJson的简单说明:

  • 2.FastJson的用法

    • 2.1.JSON格式字符串与JSON对象之间的转换

    • 2.2.JSON格式字符串与javaBean之间的转换

    • 2.3.javaBean与json对象间的之间的转换

  • 总结

1.前言

1.1.FastJson的介绍:

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

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

1.2.FastJson的特点:

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

1.3.FastJson的简单说明:

FastJson对于json格式字符串的解析主要用到了下面三个类:
1.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的转换 */@Testpublic void testJSONStrToJSONObject() {    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);    System.out.println("studentName:  " + jsonObject.getString("studentName") + ":" + "  studentAge:  "            + jsonObject.getInteger("studentAge"));}/** * JSONObject到json字符串-简单对象型的转换 */@Testpublic 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.3.复杂json格式字符串与JSONObject之间的转换

/** * 复杂json格式字符串到JSONObject的转换 */@Testpublic 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格式字符串的转换 */@Testpublic 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之间的转换 */@Testpublic 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字符串-简单对象的转换 */@Testpublic void testJavaBeanObjToJSONStr() {    Student student = new Student("lily", 12);    String jsonString = JSONObject.toJSONString(student);    System.out.println(jsonString);}

2.3.javaBean与json对象间的之间的转换

2.3.1.简单javaBean与json对象之间的转换

/** * 简单JavaBean_obj到json对象的转换 */@Testpublic 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的转换 */@Testpublic 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的转换 */@Testpublic 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的转换 */@Testpublic 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.复杂JavaBean_obj与json对象之间的转换

/** * 复杂JavaBean_obj到json对象的转换 */@Testpublic 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的转换 */@Testpublic 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中FastJson的特点及用法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0