gpt4 book ai didi

java - 无法将 json 转换为模型

转载 作者:行者123 更新时间:2023-11-30 07:52:33 24 4
gpt4 key购买 nike

我有来自 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);

尝试转换时出现错误:

Can not deserialize instance of packeg.DatesField out of START_ARRAY token

最佳答案

根据模型,json 属性不正确。没有 datesField 类型的数组,而是 datesField 对象中的字符串数组。

你的对象 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);

Response response = mapper.readValue(forObject, Response.class);

关于java - 无法将 json 转换为模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45759727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com