Java 仅当键与类的键匹配时,才从JSON转换为对象
当使用ObjectMapper将json字符串转换为对象时,我想验证它是否应该仅在所有json键与类的键匹配时才将其转换为对象。 例如: 假设json字符串是Java 仅当键与类的键匹配时,才从JSON转换为对象,java,spring,spring-boot,objectmapper,Java,Spring,Spring Boot,Objectmapper,当使用ObjectMapper将json字符串转换为对象时,我想验证它是否应该仅在所有json键与类的键匹配时才将其转换为对象。 例如: 假设json字符串是 { mem1:'somevalue', mem3:'somevalue' } 当使用对象映射器将上面的json字符串转换为类ABC时,它将在匹配mem1和mem3时进行转换,我想验证一下,如果json字符串的三个成员都是类ABC的成员,它将进行转换 你知道怎么做吗?我能想到的唯一方法是将json字符串转换为JSONObj
{
mem1:'somevalue',
mem3:'somevalue'
}
当使用对象映射器将上面的json字符串转换为类ABC时,它将在匹配mem1和mem3时进行转换,我想验证一下,如果json字符串的三个成员都是类ABC的成员,它将进行转换
你知道怎么做吗?我能想到的唯一方法是将json字符串转换为JSONObject,然后将键与类的字段名匹配,这样做可以:
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;
}
}
我需要类似的解决方案,因此您可以通过这个线程,我认为它会有帮助:如果与新的spring标准一起使用,这确实会有帮助,并且会像魅力一样工作。但我的代码是一个遗留代码,我有自动连接字段和基于setter的注入
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;
}
}