json - Jackson 检测重复的 JSON POJO 属性和 Map 键

标签 json jackson

我正在 try catch 重复的 POJO 属性或映射键已传递到我的 WebService。

例如,如果 field1 出现两次或 map 键 1 出现两次,我想抛出错误:

{
  "field1" : 1,
  "field1" : 2,
  "map" : {
    "1" : {
      "fieldA" : "null",
      "fieldB" : "2"
    },
    "1" : {
      "fieldX" : "null",
      "fieldY" : "2"
    }
  }
}

最佳答案

可以使用JsonParser.Feature.STRICT_DUPLICATE_DETECTION

ObjectMapper mapper = new ObjectMapper();
mapper.enable(JsonParser.Feature.STRICT_DUPLICATE_DETECTION);
MyPOJO result = mapper.readValue(json, MyPOJO.class);

结果:

com.fasterxml.jackson.core.JsonParseException: Duplicate field 'field1'

How to use Jackson to validate duplicated properties?关于 DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY 的帖子

关于json - Jackson 检测重复的 JSON POJO 属性和 Map 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23781637/

相关文章:

Javascript JSON日期转换为java

android - 使用 volley 检索 JSON 数据不会显示在自定义列表中

javascript - 具有模式 Bootstrap 的自动完成 Codeigniter 不起作用

java - 保存后懒惰忽略

java - 在java中获取JSON字符串JsonNode中的所有键

java - JSON数据解析到Android App

php - json_encode函数在php中数组为空时返回大括号{}

java - @ResponseBody 使用 ArrayLists 序列化错误

java - jackson Jersey JSON

java - 使用 TypeReference 的具有泛型类型的 JSON 反序列化器