浙江省城乡住房建设网站,首页网站关键词优化教程,天津网站设计开发,恩施网站制作公司一、FastJson介绍
Fastjson是阿里巴巴的开源SON解析库它可以解析JSON格式的字符串#xff0c;支持将java Bean序列化为ISON字符串#xff0c;也可以从JSON字符串反序列化到JavaBean。
Fastjson的优点 速度快 fastjson相对其他JSON库的特点是快#xff0c;从2011年fastj…一、FastJson介绍
Fastjson是阿里巴巴的开源SON解析库它可以解析JSON格式的字符串支持将java Bean序列化为ISON字符串也可以从JSON字符串反序列化到JavaBean。
Fastjson的优点 速度快 fastjson相对其他JSON库的特点是快从2011年fastjson发布1.1.版本之后其性能从未被其他ava实现的]SON库超越 使用广泛 fastjson在阿里巴巴大规模使用在数万台服务器上部署fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一 测试完备 fastjson有非常多的testcase在1.2.11版本中testcase超过3321个。每次发布都会进行回归测试保证质量稳定 使用简单 fastison的API十分简洁 功能完备 支持泛型支持流处理超大文本支持枚举支持序列化和反序列化扩展
二、FastJson序列化 API
序列化 将Java对象转换成JSON格式字符串的过程。
2.1 JSON对象转换成字符串
使用 JSON.toJSONString(Object object) 方法
public class ObjectToJSON {public static void main(String[] args) {Student student new Student(张三,20,北京市,zhangjinfqiqq.com);String jsonString JSON.toJSONString(student);System.out.println(jsonString);}
}Data
AllArgsConstructor
NoArgsConstructor
public class Student {private String name;private Integer age;private String address;private String email;
}2.2 List集合转换成JSON对象
使用 JSON.toJSONString(Object object) 方法
Student student1 new Student(张三,20,北京市,zhangjinfqiqq.com);
Student student2 new Student(张三,20,北京市,zhangjinfqiqq.com);
Student student3 new Student(张三,20,北京市,zhangjinfqiqq.com);
Student student4 new Student(张三,20,北京市,zhangjinfqiqq.com);ArrayListStudent list new ArrayList();
list.add(student1);
list.add(student2);
list.add(student3);
list.add(student4);
String jsonString JSON.toJSONString(list);
System.out.println(jsonString);2.3 Map集合转换成JSON对象
MapString, Student map new HashMap();
Student student1 new Student(张三, 20, 北京市, zhangjinfqiqq.com);
Student student2 new Student(张三, 20, 北京市, zhangjinfqiqq.com);
Student student3 new Student(张三, 20, 北京市, zhangjinfqiqq.com);
Student student4 new Student(张三, 20, 北京市, zhangjinfqiqq.com);
map.put(1,student1);
map.put(2,student2);
map.put(3,student3);
map.put(4,student4);
String jsonString JSON.toJSONString(map);
System.out.println(jsonString);三、FastJSON反序列化
将JSON格式的字符串转换成Java对象
3.1 JSON字符串转Object对象
JSON.parseObject(JSON字符串, 要转换成的类.class); String jsonString {\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\};
// 第一个参数传入JSON字符串第二个参数传入我们要转换成的对象的类Student student JSON.parseObject(jsonString, Student.class);System.out.println(student);3.2 JSON字符串转List集合
JSON.parseArray(json格式字符串, 传递转换后的集合的泛型);String jsonString [{\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\},{\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\},{\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\},{\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\}];
// 第一个参数传递JSON格式字符串第二个参数传递转换后的集合的泛型ListStudent studentsList JSON.parseArray(jsonString, Student.class);System.out.println(studentsList);3.3 JSON字符串转Map集合 String jsonString {\1\:{\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\},\2\:{\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\},\3\:{\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\},\4\:{\address\:\北京市\,\age\:20,\email\:\zhangjinfqiqq.com\,\name\:\张三\}};
// 直接进行反序列化Map集合是没有泛型的也是可以正常输出的但是没有泛型的集合是不安全的集合
// Map map JSON.parseObject(jsonString);// 下面掉用户parseObject传递参数TypeReference类型在TypeReference的泛型中传递转后的Map集合即可
// {}是什么意思 因为TypeReference的构造方法是protected修饰的只有子类才能调用但是我们现在不是他的子类在后面加{}让其在这成为匿名内部类匿名内部类就是该类的子类对象MapString, Student map JSON.parseObject(jsonString, new TypeReferenceMapString, Student() {});System.out.println(map);