Подтвердить что ты не робот

Джексон: Игнорировать значение конфигурации Json

У меня есть следующий json файл:


{
  "segments": {        
            "externalId": 123, 
            "name": "Tomas Zulberti", 
            "shouldInform": true, 
            "id": 4
   }
}

Но модель java выглядит следующим образом:


public class Segment {

    private String id;
    private String name;
    private boolean shouldInform;

    // getter and setters here...
}

Когда Джексон разбирается, возникает исключение, потому что для поля "externalId" отсутствует геттер или сеттер. Это там декоратор, который можно использовать для игнорирования json-поля?

4b9b3361

Ответ 1

Вы можете использовать аннотацию @JsonIgnoreProperties; если это просто одно значение, которое вы хотите пропустить, например:

@JsonIgnoreProperties({"externalId"})

или игнорировать все, что нельзя использовать:

@JsonIgnoreProperties(ignoreUnknown=true)

Есть и другие способы сделать это, для отдыха - FasterXML Jackson wiki.

Ответ 2

Также мы можем использовать mapper.enable(DeserializationFeature. FAIL_ON_IGNORED_PROPERTIES); вместо @JsonIgnoreProperties (ignoreUnknown = true)

но для частного свойства мы можем использовать

@JsonIgnoreProperties({"externalId"})
public class Segment {

    private String id;
    private String name;
    private boolean shouldInform;

    // getter and setters here...
}