Десериализация XML в объект с использованием преобразования Джексона Y / N в истинное / ложное логическое значение - PullRequest
0 голосов
/ 07 марта 2019

Мне нужно сопоставить элементы в xml, которые перечислены как Y / N, с логическим (true / false).

Один из элементов в xml:

<parent_node>
  <due_override_flag>N</due_override_flag>
  ...more elements
</parent_node>

Мне нужно сопоставить 'N' / 'Y' с логическим значением false / true. Это класс, которому я хочу сопоставить элемент:

@JsonRootName("trailer_standard_loads")
@JsonIgnoreProperties(ignoreUnknown=true)
public class StandardLoad {
    @JsonProperty("trailer_load_seq")
    private Integer trailerLoadSeq;
    private String createdBy;
    private ZonedDateTime createdDt;
    private String updatedBy;
    private ZonedDateTime updatedDt;
    @JsonProperty("due_override_flag")
    private Boolean dueOverrideFlag;
}

У меня есть стандартгеттеры и сеттеры.Я не понимаю из документации, как отобразить Y = true;N = ложь;

1 Ответ

2 голосов
/ 07 марта 2019

Добавьте эту логику в метод сеттера

@JsonRootName("trailer_standard_loads")
@JsonIgnoreProperties(ignoreUnknown=true)     
  public class StandardLoad {
  @JsonProperty("trailer_load_seq")
  private Integer trailerLoadSeq;
  private String createdBy;
  private ZonedDateTime createdDt;
  private String updatedBy;
  private ZonedDateTime updatedDt;

  private Boolean dueOverrideFlag;

    @JsonProperty("due_override_flag")
    public void setDueOverrideFlag(String value)  {

     this.dueOverrideFlag = value.equalsIgnoreCase("Y) ? true : false;

      }

     public Boolean getDueOverrideFlag() {

      return this.dueOverrideFlag;

      }
  }
...