再使用springboot项目的时候,需要返回json格式数据给前端。或者手动的序列化一些数据,因为使用的是jackjson。 如果使用的是FastJson直接使用就没这些事。
public static void main(String[] args) throws Exception{
ObjectMapper objectMapper = new ObjectMapper();
//序列化的时候序列对象的所有属性
objectMapper.setSerializationInclusion(Include.ALWAYS);
//取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
Person person = new Person(1, "zs", new Date());
//这是最简单的一个例子,把一个对象转换为json字符串
String personJson = objectMapper.writeValueAsString(person);
System.out.println(personJson);
//默认为true,会显示时间戳
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true);
personJson = objectMapper.writeValueAsString(person);
System.out.println(personJson);
}
public static void main(String[] args) throws Exception{
ObjectMapper objectMapper = new ObjectMapper();
//序列化的时候序列对象的所有属性
objectMapper.setSerializationInclusion(Include.ALWAYS);
//反序列化的时候如果多了其他属性,不抛出异常
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// Person person = new Person(1, "zxc", new Date());
// String personJson = objectMapper.writeValueAsString(person);
// System.out.println(personJson);
//注意,age属性是不存在在person对象中的
String personStr = "{\"id\":1,\"name\":\"zxc\",\"age\":\"zxc\"}";
Person person = objectMapper.readValue(personStr, Person.class);
System.out.println(person);
//默认为true
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
person = objectMapper.readValue(personStr, Person.class);
System.out.println(person);
}
public static void main(String[] args) throws Exception{
ObjectMapper objectMapper = new ObjectMapper();
//序列化的时候序列对象的所有属性
objectMapper.setSerializationInclusion(Include.NON_DEFAULT);
Person person1 = new Person(1, "zxc", new Date());
Person person2 = new Person(2, "ldh", new Date());
List<Person> persons = new ArrayList<>();
persons.add(person1);
persons.add(person2);
//先转换为json字符串
String personStr = objectMapper.writeValueAsString(persons);
//反序列化为List<user> 集合,1需要通过 TypeReference 来具体传递值
List<Person> persons2 = objectMapper.readValue(personStr, new TypeReference<List<Person>>() {});
for(Person person : persons2) {
System.out.println(person);
}
//2,通过 JavaType 来进行处理返回
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, Person.class);
List<Person> persons3 = objectMapper.readValue(personStr, javaType);
for(Person person : persons3) {
System.out.println(person);
}
}