JSON 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便;解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson等
一、Gson的基本用法
Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化;同时每个方法都提供了重载方法
(1)基本数据类型的解析
Gson gson =new Gson();inti = gson.fromJson("100",int.class);//100doubled = gson.fromJson("\"99.99\"",double.class);//99.99booleanb = gson.fromJson("true",boolean.class);// trueString str = gson.fromJson("String", String.class);// String
(2)基本数据类型的生成
Gson gson =new Gson();
String jsonNumber = gson.toJson(100);// 100String jsonBoolean = gson.toJson(false);// falseString jsonString = gson.toJson("String");//"String"
(3)POJO类的生成与解析
publicclass User {
//省略其它public String name;
publicint age;
public String emailAddress;
}
生成JSON:
Gson gson =new Gson();
User user =newUser("张三",24);
String jsonObject = gson.toJson(user);// {"name":"张三kidou","age":24}
解析JSON:
Gson gson =new Gson();
String jsonString = "{\"name\":\"张三\",\"age\":24}";
User user = gson.fromJson(jsonString, User.class);
二、FastJSON
Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。
主要特点:
快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
零依赖(没有依赖其它任何类库除了JDK)
import com.alibaba.fastjson.JSON;
Group group = new Group();
group.setId(0L);
group.setName("admin");
User guestUser = new User();
guestUser.setId(2L);
guestUser.setName("guest");
User rootUser = new User();
rootUser.setId(3L);
rootUser.setName("root");
group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);
网友评论