1.常见的json类库
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,可以在多种语言之间进行数据交换。
选择一个合适的JSON库要从多个方面进行考虑:
①字符串解析成JSON性能;
②字符串解析成JavaBean性能;
③JavaBean构造JSON性能;
’④集合构造JSON性能;
⑤易用性。
常见的JSON类库为:FastJson,Json-lib、Gson、Jackson
maven依赖如下:
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
<!--json-lib-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<!--gson-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<!--jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.13.1</version>
</dependency>
2.json类库的使用
举例以下的使用:(暂时这么称呼,在Jackson中未找到对应的方式)
java对象-->JSON对象 java对象-->JSON字符串 |
JSON对象-->java对象 JSON对象-->JSON字符串 |
JSON字符串-->JSON对象 JSON字符串-->java对象 |
student实体类
package com.lmc;
/**
* @author lmc
* @version 1.0.0
* @package PACKAGE_NAME description
* @Description
* @since 2022/8/9 17:29
*/
public class Student {
private String id;
private String name;
private String age;
//省略有参构造、无参构造、set、get、toString
}
2.1FastJson
package com.lmc;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
/**
* @author lmc
* @version 1.0.0
* @package PACKAGE_NAME description
* @Description fastjson
* @since 2022/8/9 17:27
*/
public class FastJsonTest {
public static void main(String[] args) {
Student student = new Student("1", "盖伦", "22");
System.out.println("======================java对象转成json对象、字符串====================");
//java对象-->json对象
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(student);
System.out.println("java对象-->json对象:" + jsonObject);
//java对象-->字符串
String s1 = JSON.toJSONString(student);
System.out.println("java对象-->json字符串:" + s1);
System.out.println();
System.out.println("======================JSON对象转成java对象、字符串====================");
//json对象-->java对象
Student student1 = JSONObject.toJavaObject(jsonObject, Student.class);
System.out.println("json对象-->java对象:" + student1.toString());
//json对象-->字符串
String s = JSONObject.toJSONString(jsonObject);
System.out.println("json对象-->json字符串:" + s);
System.out.println();
System.out.println("======================字符串转成JSON对象、java对象====================");
String stuString = "{\"id\":\"2\",\"name\":\"卢锡安\",\"age\":\"24\"}";
//字符串-->JSON对象
JSONObject jsonObject1 = JSONObject.parseObject(stuString);
System.out.println("JSON字符串-->JSON对象:" +