【发布时间】:2017-05-25 18:40:01
【问题描述】:
我正在使用 fastxml json 和对象映射器,下面是我的代码:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
try {
String jsonInString = mapper.writeValueAsString(myClassObjectHere);
return new ResponseEntity<String>(jsonInString, HttpStatus.OK);
} catch (JsonProcessingException e) {
e.printStackTrace();
return new ResponseEntity<String>(HttpStatus.INTERNAL_SERVER_ERROR);
}
我已经实现和使用代码的方式,我得到了想要的输出,但是 json 在某些 json 对象中有 2 个随机的奇怪值,如下所示:
"listing": {
"listingId": 1,
"name": "Business",
"handler": {},
"hibernateLazyInitializer": {}
},
"handler": {},
"hibernateLazyInitializer": {}
},
如何配置 objectmappper 以忽略输出 json 中的 "handler": {}, "hibernateLazyInitializer": {} 值?
我尝试了以下解决方案:
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
但它不起作用,输出仍然与我在上面发布的相同。
另外,我知道我可以通过使用 @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) 注释类来忽略 json 中的这些处理程序和 hibernateLazyInitializer,但是是否有任何方法可以全局配置 json jackson 对象映射器,这样它就不会在我输出的 json 中添加这些值?
【问题讨论】:
-
尝试使用 DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES 而不是 objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-
你用的是哪个版本的jackson?
-
我使用的是2.8.5版本
-
我在使用
DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES时收到此错误无法解析或不是字段 -
这是杰克逊 1.9 以下版本,因为您使用的是 2.8.5,所以我的建议不起作用
标签: java json spring hibernate jackson