Как установить Джексона для игнорирования логического свойства, когда оно ложно? - PullRequest
0 голосов
/ 02 июня 2018

Я использую Jackson, ObjectMapper.readValue (json, Class).

Имею класс:

Component {
  private String name;
  private String someField;
  private boolean show = true; // if false -> skip it object
}

и расширяемый класс:

ExtendedComponent extends Component {
  private List<Component> components = emptyList();// if all of object in list not showed -> skip field
}

и Complexкласс:

ComplexComponent extends Component {
      ExtendedComponent component;
    }

и json:

{
  "complexComponent": {
    "name": "complexName1",
    "show": true,
    "someField": "complex",
    "extendedComponent": {
      "components": [
        {
          "name": "someName1",
          "show": true,
          "someField": "someField"
        },
        {
          "name": "someName2",
          "show": false,
          "someField": "someField"
        },
        {
          "name": "someName3",
          "show": true,
          "someField": "someField"
        }
      ]
    }
  }
}

Как получить объекты только с именем someName1 и someName3 в ExtendedComponent?

И как получить nulllable ComplexComponent, если всекомпонентов не показывается?

1 Ответ

0 голосов
/ 05 февраля 2019

В зависимости от вашей версии Джексона 2

@JsonInclude(Include.NON_DEFAULT)

или

@JsonInclude(Include.NON_EMPTY)

должны сделать свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...