La 是SpringMVC内置的json处理工具,其中有一个
clase JacksonJson ObjectMapper`, puede realizar fácilmente el procesamiento de json.
Inyectar objetos ObjectMapper
@Autowired
ObjectMapper objectMapper;
1. Convierta el objeto a json:
(use el método writeValueAsString del objeto objectMapper)
@Test
void testObject2json() throws Exception{
HashMap<String, User> map = new HashMap<>();
map.put("laowang", new User(1, "pig", "gz sss", 1, new Date()));
map.put("laowang", new User(2, "mouse", "gz sss", 1, new Date()));
// 对象转json
String json = objectMapper.writeValueAsString(map);
System.out.println("json is " + json);
}
2. Convierta json en objetos ordinarios:
(utilizando el método readValue del objeto objectMapper)
@Test
void testjson2Object() throws Exception{
// json 串
String json = "{\"id\":2,\"username\":\"mouse\",\"address\":\"gz sss\",\"sex\":1,\"birthday\":1608776995039}";
User user = objectMapper.readValue(json, User.class);
System.out.println(user);
}
3. Convierta la lista json en un objeto de lista:
(Utilice el método readValue del objeto objectMapper.) ReadValue (json, objectMapper.getTypeFactory (). ConstructCollectionType (ArrayList.class, User.class)
void testJson2ListObject() throws Exception {
// 1.准备一个 json 的串
ArrayList<User> list = new ArrayList<>();
Collections.addAll(list,
new User(1, "pig", "gz sss", 1, new Date()),
new User(2, "dog", "sg sss", 1, new Date())
);
String json = objectMapper.writeValueAsString(list);
System.out.println("json is " + json);
// 2.将 列表 json 串 转换为 列表 User 对象
List<User> users = objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(ArrayList.class, User.class));
for (User u : users) {
System.out.println(u);
}
}
4. Convierta la cadena json de cualquier estructura de objeto en el objeto correspondiente (aquí convertido a un objeto de mapa):
(Utilice el método readValue del objeto
objectMapper ). ReadValue (json, new TypeReference <Map <String, User >> () {})
@Test
void testConvert() throws Exception{
// json 串
String json = "{\"laowang\":{\"id\":2,\"username\":\"mouse\",\"address\":\"gz sss\",\"sex\":1,\"birthday\":1608777260906}}";
Map<String, User> map = objectMapper.readValue(json, new TypeReference<Map<String, User>>() {
});
System.out.println(map);
}