一、Gson
1、java对象与json互转
User user = new User("zhangsan",24);
Gson gson = new Gson();
//将java对象转换成为json字符串
String s = gson.toJson(user);
// 反序列化
User user1 = gson.fromJson(s, User.class);
2、List与json互转
List和Map反序列化时,不能直接传入相应类型的getType(),需要先继承TypeToken,或者使用匿名内部类
List<User> list = new ArrayList<>();
list.add(new User("zhangsan",24));
list.add(new User("lisi",25));
Gson gson = new Gson();
// 序列化
String s = gson.toJson(list);
// 反序列化
List<Person> person = gson.fromJson(s, new TypeToken<List<User>>(){}.getType());
二、Jackson
1、java对象与json互转
//jackson ObjectMapper,将对象转为JSON字符串
ObjectMapper mapper = new ObjectMapper();
User user = new User("zhangsna",25);
// 序列化
String s = mapper.writeValueAsString(user);
// 反序列化
User user1 = mapper.readValue(s, User.class);
2、List与json互转
List<User> list = new ArrayList<>();
list.add(new User("zhangsan",25));
list.add(new User("lisi",22));
// 序列化 ObjectMapper
String s = om.writeValueAsString(list);
// 反序列化
List<User> users = om.readValue(s1, new TypeReference<List<User>>() {});
三、fastjson
1、java对象与json互转
User user = new User("zhangsan",24);
// 序列化
String s = JSON.toJSONString(user);
// 反序列化
User user = JSON.parseObject(s, User.class);
2、List与json互转
List<User> list = new ArrayList<>();
list.add(new User("zhangsan",25));
list.add(new User("lisi",22));
// 序列化
String s = JSON.toJSONString(list);
// 反序列化
List<User> users = JSON.parseArray(s,User.class);
这里map有些不一样,可以使用parseObject进行反序列化
Map<String, User> userMap = new HashMap<>();
userMap.put("user1", new User("zhangsan", 25));
userMap.put("user2", new User("lisi", 30));
// 将Map<String, User>序列化为JSON字符串
String jsonString = JSON.toJSONString(userMap);
// 将JSON字符串反序列化为Map<String, User>
Map<String, User> deserializedUserMap = JSON.parseObject(jsonString, Map.class);