前言
参考文章:
使用FastJson对JSON字符串、JSON对象及JavaBean之间的相互转换
FastJson简介
一、FastJson是用于java后台处理json格式数据的一个工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
- 速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。
- 功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
- 无依赖,能够直接运行在Java SE 5.0以上版本
二、FastJson对于json格式字符串的解析主要用到了一下三个类:
- JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
- JSONObject:fastJson提供的json对象。
- JSONArray:fastJson提供json数组对象。
三、安装依赖包
pom文件添加下面这个信息
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
实例
- 建立一个学生类
import lombok.Data;
@Data
public class Student {
private int id ;
private String name ;
private int age ;
}
- 建立主函数
// Java对象转Json字符串
System.out.println("======================================");
System.out.println("Java对象转Json字符串");
Student stud1 = new Student();
stud1.setName("li");
stud1.setAge(23);
stud1.setId(10);
System.out.println("Java对象:"+stud1);
String s = JSON.toJSONString(stud1);
System.out.println("转为Json字符串:"+s);
// JSON字符串转JSON对象 对于JSON对象与JSON格式字符串的转换可以直接用 toJSONString()这个方法。
System.out.println("======================================");
System.out.println("JSON字符串转JSON对象");
JSONObject jsonObject = JSON.parseObject(s);
System.out.println("类型:"+jsonObject.getClass());
System.out.println("JSON对象:"+jsonObject);
//json字符串转java简单对象
// JSON.parseObject():将Json字符串转为对应的对象
System.out.println("======================================");
System.out.println("json字符串转java简单对象");
String str = "{\"id\":01,\"name\":\"li\",\"age\":12}" ;
Student stud2= JSON.parseObject(str,Student.class) ;
System.out.println(stud2.getClass());
System.out.println(stud2);
// JSON字符串数组型与Java对象的转换
// json字符串--数组型与JSONArray对象之间的转换
String ss = "[{\"id\":01,\"name\":\"li\",\"age\":12},{\"id\":02,\"name\":\"nn\",\"age\":10}]" ;
JSONArray ja = JSONArray.parseArray(ss);
System.out.println("======================================");
System.out.println("json字符串--数组型与JSONArray对象之间的转换:");
System.out.println("JSONArray对象:"+ja);
List<Student> stud3 = JSON.parseArray(ja.toString(),Student.class) ;
System.out.println("======================================");
System.out.println("json字符串--数组型与List对象之间的转换:");
System.out.println("List对象:"+stud3);
结果展示
======================================
Java对象转Json字符串
Java对象:Student(id=10, name=li, age=23)
转为Json字符串:{"age":23,"id":10,"name":"li"}
======================================
JSON字符串转JSON对象
类型:class com.alibaba.fastjson.JSONObject
JSON对象:{"name":"li","id":10,"age":23}
======================================
json字符串转java简单对象
class study.nian.project01.entity.Student
Student(id=1, name=li, age=12)
======================================
json字符串--数组型与JSONArray对象之间的转换:
JSONArray对象:[{"name":"li","id":1,"age":12},{"name":"nn","id":2,"age":10}]
======================================
json字符串--数组型与List对象之间的转换:
List对象:[Student(id=1, name=li, age=12), Student(id=2, name=nn, age=10)]
总结
-
需要对JSON格式简单了解一下,几个常用函数也要知道作用是什么
对于JSON对象与JSON格式字符串的转换可以直接用 toJSONString()这个方法。
JSON.parseObject():将Json字符串转为对应的对象 -
转换方法可能会遗忘,多用用就行