使用 Jackson 数据绑定将对象序列化为 Map 而不是 String?
Serialize object as Map instead of String using Jackson databind?
当您想将对象序列化为 JSON 字符串时,通常会执行类似的操作:
String json = objectMapper.writeValueAsString(myObject);
我想知道是否可以将对象直接序列化为 java.util.Map
而不是字符串? IE。像这样(伪代码):
String json = objectMapper.writeValueAs(myObject, new TypeReference<Map<String,Object>>() {});
我知道我可以先将对象序列化为字符串,然后将其反序列化为 Map<String,Object>
,但我想问一下是否有办法做到这一点 without 首先序列化为字符串?
我正在使用 Jackson 2.11.1。
可以使用ObjectMapper的convertValue方法将Object转为Map
Map<String, Object> map = objectMapper.convertValue(myObject, Map.class);
当您想将对象序列化为 JSON 字符串时,通常会执行类似的操作:
String json = objectMapper.writeValueAsString(myObject);
我想知道是否可以将对象直接序列化为 java.util.Map
而不是字符串? IE。像这样(伪代码):
String json = objectMapper.writeValueAs(myObject, new TypeReference<Map<String,Object>>() {});
我知道我可以先将对象序列化为字符串,然后将其反序列化为 Map<String,Object>
,但我想问一下是否有办法做到这一点 without 首先序列化为字符串?
我正在使用 Jackson 2.11.1。
可以使用ObjectMapper的convertValue方法将Object转为Map
Map<String, Object> map = objectMapper.convertValue(myObject, Map.class);