一、fastjon
1.fastjon的常用方法
JSON.toJSONString():对象转为json格式字符串;
JSON.parseObject():json格式转字符串对象;
JSON.parseArray():转为列表对象;
JSON.toJSONStringWithDateFormat():返回指定日期格式的json字符串;
2.使用例子
(1)对象转json字符串
User user = new User("zhangsan",12);
// java对象转为json格式的字符串
String s = JSON.toJSONString(user);
System.out.println(s);
结果:
(2)json字符串转对象
String userStr = "{\"age\":12,\"name\":\"zhangsan\"}";
// json格式的字符串转为java对象
User user1 = JSON.parseObject(userStr, User.class);
System.out.println(user1);
System.out.println(user1.getName());
运行结果:
(3)列表对象转json字符串
List<User> list = new ArrayList<>();
for(int i = 0; i <= 5; i++){
User u = new User("lisi" + i, 12 + i);
list.add(u);
}
System.out.println(JSON.toJSONString(list));
运行结果:
(4)json字符串转列表
String listStr = "[{\"age\":12,\"name\":\"lisi0\"},{\"age\":13,\"name\":\"lisi1\"}, {\"age\":14,\"name\":\"lisi2\"},{\"age\":15,\"name\":\"lisi3\"}, {\"age\":16,\"name\":\"lisi4\"},{\"age\":17,\"name\":\"lisi5\"}]";
// json格式字符串转为list对象
List<User> users = JSON.parseArray(listStr, User.class);
System.out.println(users);
System.out.println(users.get(0).getName());
运行结果:
(5)返回执行日期格式的json字符串
User user2 = new User("wangwu",23, new Date());
// 针对日期对象,默认转为时间戳
System.out.println(JSON.toJSONString(user2));
// 默认将日期对象转为 yyyy-MM-dd HH:mm:ss格式的字符串
System.out.println(JSON.toJSONString(user2, SerializerFeature.WriteDateUseDateFormat));
// 日期对象转换为指定格式
System.out.println(JSON.toJSONStringWithDateFormat(user2, "yyyy-MM-dd",SerializerFeature.WriteDateUseDateFormat));
运行结果:
二、jsckson
1.jsckson的常用方法
mapper.writeValueAsString() 对象转为json格式字符串
mapper.readValue() json格式字符串转为对象
2.使用例子
(1)json对象转字符串
// 使用jackson时核心对象
ObjectMapper mapper = new ObjectMapper();
User user = new User("zhangsan", 23);
// java对象转为json格式字符串
try {
String s = mapper.writeValueAsString(user);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
List<User> list = new ArrayList<>();
for(int i = 0; i <= 5; i++){
User u = new User("lisi" + i, 12 + i);
list.add(u);
}
try {
String s = mapper.writeValueAsString(list);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
(2)列表对象转字符串
String jsonStr = "{\"name\":\"zhangsan\",\"age\":23,\"birth\":null}";
try {
// json格式字符串转为对象
User user1 = mapper.readValue(jsonStr, User.class);
System.out.println(user1.getName());
} catch (IOException e) {
e.printStackTrace();
}
String jsonStr2 = "[{\"name\":\"lisi0\",\"age\":12,\"birth\":null},{\"name\":\"lisi1\",\"age\":13,\"birth\":null},{\"name\":\"lisi2\",\"age\":14,\"birth\":null},{\"name\":\"lisi3\",\"age\":15,\"birth\":null},{\"name\":\"lisi4\",\"age\":16,\"birth\":null},{\"name\":\"lisi5\",\"age\":17,\"birth\":null}]";
try {
// 转对象
List<User> list1 = mapper.readValue(jsonStr2, new TypeReference<List<User>>() {});
System.out.println(list1.get(0).getName());
} catch (IOException e) {
e.printStackTrace();
}
(3)日期格式转换
// 设置日期的转换格式
mapper.setDateFormat(new SimpleDateFormat("yyy-MM-dd"));
User user1 = new User("lisi", 23, new Date());
try {
// 默认日期转为时间戳
String s = mapper.writeValueAsString(user1);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}