java - 替换 JSON 中的值

标签 java json jackson

如何使用 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/

相关文章:

java - 具有数据库数据内存副本的框架/应用程序

Java:帮助使用 Jackson 读取 YAML 中的关联数组

Spring REST Web 服务序列化为多种 JSON 格式

spring-boot - Spring 与 Jackson ObjectMapper 和 Java 8 Time 集成 (JSR-310)

java - 生成唯一的随机数并检查重复项

java - sun.security.ssl.allowUnsafeRenegotiation

java - 这段java代码有问题吗?

javascript - 字符串到数组 - javascript

javascript - 在 asp.net mvc 4 中使用动态关键字时出错

php - 我想显示返回数据以转换json