温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中FastJson的特点及用法

发布时间:2021-09-10 18:08:08 来源:亿速云 阅读:204 作者:chen 栏目:开发技术

本篇内容主要讲解“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的转换  */ @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.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<T>类,由于其构造方法使用protected进行修饰,故创建其子类     //Student student = JSONObject.parseObject(JSON_OBJ_STR, new TypeReference<Student>() {});     //第三种方式,使用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.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<T>类,由于其构造方法使用protected进行修饰,故创建其子类     Student student = JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference<Student>() {});     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<Student> students = new ArrayList<Student>();     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<T>类,由于其构造方法使用protected进行修饰,故创建其子类     ArrayList<Student> students = JSONArray.parseObject(jsonArray.toJSONString(),             new TypeReference<ArrayList<Student>>() {});     System.out.println(students);     //第二种方式,使用Gson的思想     List<Student> students1 = JSONArray.parseArray(jsonArray.toJSONString(), Student.class);     System.out.println(students1); }

2.3.3.复杂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<Student> students = new ArrayList<Student>();     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<T>类,由于其构造方法使用protected进行修饰,故创建其子类     Teacher teacher = JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference<Teacher>() {});     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> T parseObject(String text, Class<T> clazz);                   // 把JSON文本parse成JSONArray         public static final JSONArray parseArray(String text);                   //把JSON文本parse成JavaBean集合         public static final <T> List<T> parseArray(String text, Class<T> 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的特点及用法”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI