多条json组成的数据如何反序列化,JSON序列化和反序列化
多条json组成的数据如何反序列化,JSON序列化和反序列化FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JAVA Bean序列化为JSON字符串,也可以将JSON字符串反序列化到Java Bean。是一种json转换工具{ "userccount":"admin" "password":"123456" }三、FastJson介绍json的数据本身是数组,中括号包裹,数组的元素之间逗号分开,数组元素的数据类型没有限制[{ "userccount":"admin" "password":"123456" } { "userccount":"zhangsan"
一、什么是json?
JSON是一种轻量级的数据交换格式。
二、json数据格式
2.1 JSON数组格式
json的数据本身是数组,中括号包裹,数组的元素之间逗号分开,数组元素的数据类型没有限制
[{
"userccount":"admin"
"password":"123456"
} {
"userccount":"zhangsan"
"password":"123456"
}]
2.2 JSON对象格式
json的数据本身是对象,大括号包裹,对象采用键值对形式存储,键固定为字符串类型,值是任意类型的数据,键和值使用冒号分开。
{
"userccount":"admin"
"password":"123456"
}
三、FastJson介绍
FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JAVA Bean序列化为JSON字符串,也可以将JSON字符串反序列化到Java Bean。是一种json转换工具
序列化(JAVA对象转换为JSON格式字符串):
3.1 JAVA对象转换为JSON字符串
//准备一个JAVA对象
@Data
public class Student {
private Integer id;
private String name;
private Integer age;
}
//JAVA对象转为JSON格式字符串
public static void main(String[] args) {
//JAVA对象
Student student = new Student();
student.setId(1);
student.setName("张三");
student.setAge(20);
//转换为JSON格式字符串
String jsonString = JSON.toJSONString(student);
System.out.println(jsonString);
}
打印:
{"age":20 "id":1 "name":"张三"}
3.2 List集合转换为JSON字符串
public static void main(String[] args) {
//定义一个list
List<Student> list=new ArrayList<>();
Student student = new Student();
student.setId(1);
student.setName("张三");
student.setAge(20);
Student student2 = new Student();
student2.setId(2);
student2.setName("李四");
student2.setAge(22);
list.add(student);
list.add(student2);
//转换为
String jsonString = JSON.toJSONString(list);
System.out.println(jsonString);
}
打印:
[{"age":20 "id":1 "name":"张三"} {"age":22 "id":2 "name":"李四"}]
3.3 MAP集合转换为JSON字符串
public static void main(String[] args) {
//定义一个Map
Map<String Student> map=new HashMap<>();
List<Student> list=new ArrayList<>();
Student student = new Student();
student.setId(1);
student.setName("张三");
student.setAge(20);
Student student2 = new Student();
student2.setId(2);
student2.setName("李四");
student2.setAge(22);
map.put("student" student);
map.put("student2" student2);
//转换为
String jsonString = JSON.toJSONString(map);
System.out.println(jsonString);
}
打印:
{"student":{"age":20 "id":1 "name":"张三"} "student2":{"age":22 "id":2 "name":"李四"}}
反序列化(JSON格式字符串转换为JAVA对象):
3.4 JSON字符串转换为JAVA对象
public static void main(String[] args) {
String jsonstring="{\"age\":20 \"id\":1 \"name\":\"张三\"}";
Student student= JSON.parseObject(jsonstring Student.class);
System.out.println(student);
}
打印:
Student(id=1 name=张三 age=20)
3.5 JSON字符串转换为List集合
public static void main(String[] args) {
String jsonstring="[{\"age\":20 \"id\":1 \"name\":\"张三\"} {\"age\":22 \"id\":2 \"name\":\"李四\"}]";
List<Student> students = JSON.parseArray(jsonstring Student.class);
for(Student student:students){
System.out.println(student);
}
}
打印:
Student(id=1 name=张三 age=20)
Student(id=2 name=李四 age=22)
3.6 JSON字符串转换为MAP集合
public static void main(String[] args) {
//定义1个json字符串
String jsonstring="{\"student\":{\"age\":20 \"id\":1 \"name\":\"张三\"} \"student2\":{\"age\":22 \"id\":2 \"name\":\"李四\"}}";
//直接进行反序列化,Map集合没有泛型,泛型没有是不安全的集合
//Map map=JSON.parseObject(jsonstring);
//转后的集合,必须有泛型
//调用parseObject,传递参数,TypeReference类型,在TypeReference类的泛型中,传递转后的Map集合
Map<String Student > map=JSON.parseObject(jsonstring new TypeReference<Map<String Student>>(){});
for(String key:map.keySet()){
System.out.println(map.get(key));
}
}
打印:
Student(id=1 name=张三 age=20)
Student(id=2 name=李四 age=22)