一、需要序列化的POJO和初始化代码
以下3种类库的使用均使用下面这个POJO
public class User {
public User(){}
private String id;
private String name;
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password
+ "]";
}
}
/**
* 初始化User对象
* @return user
*/
private static User initUser(){
User user = new User();
user.setId("1");
user.setName("jison");
user.setPassword("jison");
return user;
}
二、fastjson的使用
fastjson的主要工具类是JSON,以下代码实现Java对象的序列化与反序列化
// 将Java对象序列化为Json字符串
String objectToJson = JSON.toJSONString(initUser());
System.out.println(objectToJson);
// 将Json字符串反序列化为Java对象
User user = JSON.parseObject(objectToJson, User.class);
System.out.println(user);
三、jackson的使用
jackson我们经常用到的是它的数据绑定包下的ObjectMapper类,以下代码实现Java对象的序列化与反序列化
ObjectMapper objectMapper = new ObjectMapper();
// 将Java对象序列化为Json字符串
String objectToJson = objectMapper.writeValueAsString(initUser());
System.out.println(objectToJson);
// 将Json字符串反序列化为Java对象
User user = objectMapper.readValue(objectToJson, User.class);
System.out.println(user);
四、gson的使用
gson的主要工具类是Gson,使用GsonBuilder构造,以下代码实现Java对象的序列化与反序列化
Gson gson = new GsonBuilder().create();
// 将Java对象序列化为Json字符串
String objectToJson = gson.toJson(initUser());
System.out.println(objectToJson);
// 将Json字符串反序列化为Java对象
User user = gson.fromJson(objectToJson, User.class);
System.out.println(user);
以上3种json类库的完整代码如下:
public class JsonUtils {
/**
* 初始化User对象
* @return user
*/
private static User initUser(){
User user = new User();
user.setId("1");
user.setName("jison");
user.setPassword("jison");
return user;
}
public static void main(String[] args) throws Exception {
// fastjson用法
fastjson();
// jackson用法
jackson();
// gson用法
gson();
}
private static void fastjson(){
// 将Java对象序列化为Json字符串
String objectToJson = JSON.toJSONString(initUser());
System.out.println(objectToJson);
// 将Json字符串反序列化为Java对象
User user = JSON.parseObject(objectToJson, User.class);
System.out.println(user);
}
private static void jackson() throws Exception{
ObjectMapper objectMapper = new ObjectMapper();
// 将Java对象序列化为Json字符串
String objectToJson = objectMapper.writeValueAsString(initUser());
System.out.println(objectToJson);
// 将Json字符串反序列化为Java对象
User user = objectMapper.readValue(objectToJson, User.class);
System.out.println(user);
}
private static void gson(){
Gson gson = new GsonBuilder().create();
// 将Java对象序列化为Json字符串
String objectToJson = gson.toJson(initUser());
System.out.println(objectToJson);
// 将Json字符串反序列化为Java对象
User user = gson.fromJson(objectToJson, User.class);
System.out.println(user);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)