java - 使用 Jackson 将 Y/N 映射为 true/false 布尔值将 XML 反序列化为对象
问题描述
我需要将 xml 中列为 Y/N 的元素映射到布尔值(真/假)。
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;
}
我有标准的 getter 和 setter。我从文档中不明白如何映射 Y = true; N = 假;
解决方案
在 setter 方法中添加该逻辑
@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;
}
}
推荐阅读
- excel - Excel - 排名调查响应
- facebook - 带有页面的 Facebook 测试帐户
- dart - ListView 默认为空,只有在用户点击搜索栏或热加载时才会在 List 中显示数据
- c# - 无法打开 PDF,该 PDF 是使用用 C# 编写的 print to pdf 代码生成的
- r - dplyr::select - 多次使用列?
- ios - 在 spritekit 中的某种数组、类或结构中存储多个 userdefaults 变量?
- jsf - 配置 JSESSIONID Cookie 在特定时间点过期
- ubuntu-16.04 - 在 ubuntu 中解析 bigbluebutton 存储库
- firefox-addon - 签署 Firefox 扩展而不在 AMO 上发布
- javascript - 简单的 javascript/jquery “on [Escape]”动作 - 怎么做?