【问题标题】:Convert from JSON to Object only when keys match with that of class仅当键与类匹配时才从 JSON 转换为 Object
【发布时间】:2020-03-09 10:48:50
【问题描述】:

当使用 ObjectMapper 将 json 字符串转换为对象时,我想验证它应该仅在所有 json 键与 Class 匹配时才将其转换为 Object。 例如:

Class ABC{
   private String mem1;
   private String mem2;
   private String mem3;
}

假设 json 字符串是

{
    mem1:'somevalue',
    mem3:'somevalue'
}

当使用对象映射器将上述 json 字符串转换为 ABC 类时,它会在匹配 mem1 和 mem3 时进行转换,我想验证它是否会转换 json 字符串是否具有与 ABC 类相同的所有三个成员。

知道怎么做吗?我能想到的唯一方法是将json字符串转换为JSONObject,然后将键与类的字段名匹配

【问题讨论】:

标签: java spring spring-boot objectmapper


【解决方案1】:

这样可以:

class Abc{
    private String mem1;
    private String mem2;
    private String mem3;

    @JsonCreator
    public Abc(@JsonProperty(value = "mem1", required = true) String mem1
            , @JsonProperty(value = "mem2", required = true)String mem2
            , @JsonProperty(value = "mem3", required = true)String mem3) {
        this.mem1 = mem1;
        this.mem2 = mem2;
        this.mem3 = mem3;
    }
}

【讨论】:

  • 如果与新的弹簧标准一起使用,这确实会有所帮助并且会像魅力一样发挥作用。但我的代码是遗留代码,我有自动装配字段和基于 setter 的注入
猜你喜欢
  • 1970-01-01
  • 2016-09-19
  • 2014-04-07
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
相关资源
最近更新 更多