Jackson
jackson实现序列化(对象转为json)
ObjectMapper mapper = new ObjectMapper();
Person person = new Person();
...
String jsonString = mapper.writeValueAsString(student);
jackson实现反序列化
JavaType反序列化
ObjectMapper mapper = new ObjectMapper();
Person deserializedPerson = mapper.readValue(jsonString, Person.class)
- 自定义类中的变量名与json串中字段名称相同时,则自动进行封装。若无法避免名称不一致问题时,则可使用**@JsonProperty**进行匹配
public class Person {
@JsonProperty("name")
private String personName;
}
List泛型反序列化
CollectionType javaType = mapper.getTypeFactory()
.constructCollectionType(List.class, Person.class);
List<Person> personList = mapper.readValue(jsonInString, javaType);
List<Person> personList = mapper.readValue(jsonInString, new
TypeReference<List<Person>>(){});
Map泛型反序列化
MapType javaType =
mapper.getTypeFactory().constructMapType(HashMap.class,String.class,
Person.class);
Map<String, Person> personMap = mapper.readValue(jsonInString,
javaType);
Map<String, Person> personMap = mapper.readValue(jsonInString, new
TypeReference<Map<String, Person>>() {});