一. json知识
- 什么是json对象
在大括号{…}中书写,包含多个key/value(键/值)对,key必须是字符串,value可以是合法的JSON数据类型(字符串,数字,对象,数组,布尔值或null)
例如一个最简单的没有嵌套的JSON对象:
{ “name”:“john”, “heght”:180, “brother”:null } - 什么是json字符串?
书写格式和json对象一样,不过类型为String,不能直接操作其中的各个属性,需要对其进行转换。在很多前后端交互传值之类的,都以json字符串的形式进行传递。,所以对json字符串进行转换非常有必要。 - 什么是JSON数组?
JSON 数组在中括号中书写,JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
简单的JSON数组:
[ “Google”, “Runoob”, “Taobao” ]
二. 使用FastJson进行json对象和json字符串的转换
- 将json字符串转换成为json对象
Student student =JSON.parseObject(jsonStr,Student.class);
- 简单json字符串数组转换为list数组
List<Student> studentList = JSONObject.parseArray(jsonStr, Student.class);
- 复杂json对象转化成为json字符串
HighSchool highSchool = JSON.parseObject(jsonStr,HighSchool.class);
List<Student> studentList = JSONObject.parseArray(highSchool.getStudent().toString(), Student.class);
总结
首先要明白,以 { } 开头的是JSONObject,以 [ ] 开头的是JSONArray,如果本身就是json字符串的格式(即格式类型为String),那就不用转换,直接使用转换方法进行转换。
但是如果是嵌套字符串的话,从第一次转换后的java对象中取出来的是Object类型,这时候需要先用toString方法转换为String类型,然后再调用方法。
参考博文: