我有来自 url 的 json。我需要将此 json 转换为模型
{
"someField": 3,
"datesField": ["2017-08-19",
"2017-08-20",
"2017-08-26",
"2018-12-30"]
}
我创建用于映射的模型
@Data
@NoArgsConstructor
private class Response{
@JsonProperty("someField")
private int someField;
@JsonProperty("datesField")
private DatesField datesField;
}
@Data
@NoArgsConstructor
private class DatesField{
private String[] strings;
}
尝试转换
ObjectMapper mapper = new ObjectMapper();
Dates dates = mapper.readValue(forObject, Response.class);
尝试转换时出现错误:
无法反序列化 START_ARRAY 之外的 packeg.DatesField 实例
代币
根据模型,归因的 json 不正确。没有数组datesField
键入但内部的字符串数组datesField
object.
您的对象 json 等效项应为:
{
"someField": 3,
"datesField": {
"strings":["2017-08-19",
"2017-08-20",
"2017-08-26",
"2018-12-30"]
}
}
或者另一种方式,如果您需要适应 json 响应,请按照 @xenteros 的建议将模型更改为:
@Data
@NoArgsConstructor
private class Response{
@JsonProperty("someField")
private int someField;
@JsonProperty("datesField")
private String[] datesField;
}
另请注意,映射响应的 java 代码应更改为:
Dates dates = mapper.readValue(forObject, Response.class);
to
Response response = mapper.readValue(forObject, Response.class);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)