Конвертировать из JSON в объект, только когда ключи совпадают с ключами класса - PullRequest
1 голос
/ 09 марта 2020

При преобразовании строки json в объект с использованием ObjectMapper я хочу проверить, что он должен преобразовывать его в объект только тогда, когда все ключи json соответствуют ключам класса. Например:

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

Допустим, строка json имеет значение

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

при использовании объектного преобразователя для преобразования выше json строки в класс AB C она будет преобразована по мере совпадает с mem1 и mem3, я хочу проверить его так, чтобы он конвертировался, если строка json содержит все три члена, как у класса AB C.

Есть идеи, как это сделать? Единственный способ, которым я могу придумать, - это преобразовать строку json в JSONObject и затем сопоставить ключи с именем поля класса

1 Ответ

1 голос
/ 09 марта 2020

Это будет делать:

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;
    }
}
...