无法反序列化java实例。lang.String[]值外\u字符串标记[…](通过参考链:[……])。模型用户[“种族”])
我有一个用户对象的属性种族
。
从这里我可以看出,错误是因为json“type”与属性类型不匹配,但在我的例子中,两者都是字符串数组。
我做错什么了吗?
此外,我无法理解VALUE\u STRING
在解析中代表什么。
服务器端正在使用环回,并且ethnicities属性的定义如下:
“种族”:[“”]
Android客户端使用Jackson将json映射到pojo,反之亦然。pojo中的种族如下所示:
private String[] ethnicities;
public String[] getEthnicities() {return ethnicities;}
public void setEthnicities(String[] ethnicities) {this.ethnicities = ethnicities;}
到json的映射:
try {
ObjectMapper mapper = new ObjectMapper();
jsonUserObject = mapper.writeValueAsString(user);
} catch (IOException e) {
System.out.println("IOException converting user object to JSON");
}
以及json的映射:
try {
ObjectMapper mapper = new ObjectMapper();
user = mapper.readValue(userObjectJSON, User.class);
} catch (IOException e) {
System.out.println("IOException converting JSON to user object");
}
下面是一些传入json的示例:
"ethnicities": [
"Asian",
"American Indian",
"Hispanic"
]
"ethnicities": [
"Caucasian"
]
"ethnicities": null
谢谢!
这就是你处理的全部JSON吗?
我今天也遇到了类似的问题。当要序列化的属性是JSON根属性时,似乎不可能将JSON数组反序列化为Java字符串[]或列表。
最后,我将值包装到另一个对象中。在您的情况下,它可能看起来像:
"user": {
"ethnicities": [
"Asian",
"American Indian",
"Hispanic",
]
}
也许这只是一个配置问题——但是我不知道如何在不包装数组的情况下处理它。
希望能有帮助。丹尼尔
尝试将此标志设置为ObjectMapper
:
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
在客户端,我使用gson将JSON表示转换为java对象。然后,我将该对象传递给我的REST服务,它可以正常工作。 问题: 当我的JSON表示在集合中只有一个项时 客户端:
问题内容: 我有一个使用Jersey构建并部署在AppEngine中的REST服务。REST服务实现使用媒体类型的动词PUT 。数据绑定由Jackson进行。 该动词使用JSON中表示的企业部门关系为 在客户端,我使用gson将JSON表示形式转换为Java对象。然后,将对象传递给我的REST服务,它可以正常工作。 问题: 当我的JSON表示形式在集合中只有一项时 服务无法反序列化对象。 正如其他
我有一门主课: 和嵌套类: 我正在尝试使用自定义反序列化程序反序列化: 以下是我如何配置objectMapper: 应用程序在以下json之外接收: 在LocalDateTime反序列化时,我收到异常: 我想,杰克逊将“dateTimeMessage发送”识别为一个对象,并且无法将其解析为字符串。 解决问题的方法是什么? 修改源代码json,例如通过将LocalDateFormal更改为Strin
我正在尝试反序列化以 XML soap 格式接收的消息。以前这一直在工作,但由于源消息的更改,我现在遇到以下问题 我可以看到这是因为消息中的以下内容.... 我认为问题在于它试图将一个字符串数据类型赋值或“强制转换”到一个空字段上,因此抛出一个错误,指出该字段是一个对象,不能被识别为字符串。 我的问题是如何阻止反序列化程序首先尝试读取这个特定的空字段。这是我在使用Jackson的Java代码中声明
看起来杰克逊无法处理同名的属性和属性。
我用的是Kotlin,Spring Boot,Jackson数据格式csv。不确定如何将csv的响应作为域对象列表返回。我有以下错误:无法反序列化超出起始\u数组令牌 我的代码如下: