如何使用 Jackson 2 处理器处理 JSON 中的无效对象?考虑以下响应
"person":{
"name":"person name",
"age":{
"@xsi:nil" : "true"
},
"address":{
"@xsi:nil" : "true"
}
}
这个age和address参数分别是数字和字符串类型。在 null
期间,后端会生成一个子对象,我们需要在使用时忽略该子对象并将其视为 null
。
我考虑使用以下方法之一进行修复
- 以字符串形式获取整个响应,并使用正则表达式将
{"@xsi:nil": "true"}
替换为null
- 为字符串、数字引入单独的反序列化器,并使用 JSON 节点处理它们。
我想知道处理这个问题的最佳方法。谢谢
最佳答案
您可以在类级别使用 Jackson @JsonIgnoreProperties
注释,如下所示:
@JsonIgnoreProperties(ignoreUnknown = true)
或者使用ObjectMapper
并将其配置为忽略未知属性:
ObjectMapper objectMapper = new ObjectMapper()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
您可以阅读Jackson Unmarshalling JSON with Unknown Properties供进一步阅读。
关于java - 替换 JSON 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43186695/