jackson
@Testvoid jacksonTest() {User user = new User(12, "zhangsan");User user2 = new User(22, "lisi");List<User> list = new ArrayList<>();list.add(user);list.add(user2);ObjectMapper objectMapper = new ObjectMapper();try {// {"age":12,"name":"zhangsan"}// 将java对象转为json字符串String jsonStr = objectMapper.writeValueAsString(user);System.out.println(jsonStr);
// [{"age":12,"name":"zhangsan"},{"age":22,"name":"lisi"}]String jsonArrStr = objectMapper.writeValueAsString(list);System.out.println(jsonArrStr);
// 将json字符串转为普通java对象User user1 = objectMapper.readValue(jsonStr, User.class);System.out.println(user1);
// 将json数组字符串转为指定类型的列表List<User> users = objectMapper.readValue(jsonArrStr, new TypeReference<List<User>>() {});System.out.println(users);
} catch (JsonProcessingException e) {e.printStackTrace();}}
@Testvoid jacksonTest2() {Person person = new Person(12, "haha", new Date());Person person2 = new Person(44, null, new Date());ObjectMapper objectMapper = new ObjectMapper();try {// 默认日期转为时间戳// {"age":12,"name":"haha","birth":1730345266459}String jsonStr = objectMapper.writeValueAsString(person);System.out.println(jsonStr);
// {"age":44,"name":null,"birth":1730345368908}String jsonStr2 = objectMapper.writeValueAsString(person2);System.out.println(jsonStr2);} catch (JsonProcessingException e) {e.printStackTrace();}}
@Testvoid jacksonTest3() {Person person = new Person(12, "haha", new Date());ObjectMapper objectMapper = new ObjectMapper();// 指定日期格式objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));try {// {"age":12,"name":"haha","birth":"2024-10-31 11:31:45"}String jsonStr = objectMapper.writeValueAsString(person);System.out.println(jsonStr);
} catch (JsonProcessingException e) {e.printStackTrace();}}
处理日期方法之一
spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8
fastjson
@Testvoid fastjsonTest() {User user = new User(12, "zhangsan");User user2 = new User(22, "lisi");User user3 = new User(22, null);List<User> list = new ArrayList<>();list.add(user);list.add(user2);// 对象转为json字符串// {"age":12,"name":"zhangsan"}String jsonStr = JSON.toJSONString(user);System.out.println(jsonStr);// [{"age":12,"name":"zhangsan"},{"age":22,"name":"lisi"}]String jsonArrStr = JSON.toJSONString(list);System.out.println(jsonArrStr);
// {"age":22} , 默认值是null的数据不进行转换String jsonStr3 = JSON.toJSONString(user3);System.out.println(jsonStr3);
// json转对象User user1 = JSON.parseObject(jsonStr, User.class);System.out.println(user1);// json字符串转为列表对象List<User> users = JSON.parseArray(jsonArrStr, User.class);System.out.println(users);}
@Testvoid fastjsonTest2() {Person person = new Person(12, "haha", new Date());// 默认转为时间戳// {"age":12,"birth":1730346273946,"name":"haha"}String jsonStr = JSON.toJSONString(person);System.out.println(jsonStr);}
@Testvoid fastjsonTest3() {Person person = new Person(12, "haha", new Date());// {"age":12,"birth":"2024-10-31 11:45:40","name":"haha"}String jsonStr = JSON.toJSONString(person, SerializerFeature.WriteDateUseDateFormat);System.out.println(jsonStr);}
@Testvoid fastjsonTest4() {Person person = new Person(12, null, new Date());//{"age":12,"birth":"2024-10-31 11:51:43","name":""}SerializerFeature[] features = {SerializerFeature.WriteDateUseDateFormat, // 转换日期SerializerFeature.WriteNullListAsEmpty, // 空列表转为[]SerializerFeature.WriteNullNumberAsZero, // 将空数字转为0SerializerFeature.WriteNullStringAsEmpty // 将空字符串转为 ""};String jsonStr = JSON.toJSONString(person, features);System.out.println(jsonStr);}