- 此问题在此处已有答案**:
Jackson ObjectMapper returns null when Object variable is set to Private(4个答案)
15小时前关门了。
我的数据如下所示,并保存在名为risk.json的测试文件夹中
[{
"Risk": "BN",
"Classification": null,
"LastDefaultDate": "1915-04-14 00:00:00"
}]
我的RiskClass定义如下
@Data
@JsonIgnoreProperties({"document"})
public class RiskClass implements KeyedObject {
String risk;
String classification;
Date lastDefaultDate;
@Override
public String getKey() {
return risk;
}
}
在我的数据准备类中,我尝试通过以下操作填充其中一个Map
List<RiskClass> rList = ObjectUtils.jsonStringToObjList(readFileAsString("test", "risk.json"), RiskClass.class);
Map<String, RiskClass> riskMapLocal = new HashMap<>();
for (RiskClass rMap : rList) {
riskMapLocal.put(rMap.getRisk(), rMap);
}
现在,当我尝试打印riskMapLocal时,在lastDefaultDate下得到空值。
2条答案
按热度按时间t3irkdon1#
json中的属性名以大写的-
Risk
开头,等等。POJO中的字段以小写的-risk
开头,所以它们不能被自动匹配。1.在json中将它们更改为小写
1.在字段上使用注解JsonProperty指定要与此字段匹配的属性的名称。
2ledvvac2#
在特性
lastDefaultDate
上添加注解:此外,将类型
Date
更改为LocalDateTime
,因为日期类型已过时(双关语)。有关详细信息,请查看此问题及其最佳答案:Spring Data JPA - ZonedDateTime format for json serialization