gpt4 book ai didi

java - JsonMappingException : Can not deserialize instance of java. util.List 超出 START_OBJECT token

转载 作者:行者123 更新时间:2023-11-29 05:16:46 25 4
gpt4 key购买 nike

我在下面有一个 JSON,我正在尝试使用 Jackson 将其解析为 POJO

{
"Response": {
"userIds": [
"http://example.com:10249/User/526241869918679991"
],
"userGroupIds": [
"http://example.com:10249/UserGroup/1056659494710887089"
],
"accountIds": [
"http://example.com:10249/ServiceAccount/3354613317986071030"
],
"success": true
}
}

我的响应 POJO 片段如下

private boolean success;
private List<String> accountIds;
private List<String> userIds;
private List<String> userGroupIds;

以及它们的 getter 和 setter

我的声明是否错误,因为我在解析时遇到“org.codehaus.jackson.map.JsonMappingException:无法从 START_OBJECT token 中反序列化 java.util.List 的实例”错误

解析逻辑如下:

jsonMapper.readValue(responseJSONString, new TypeReference<List<Response>>() {});

知道我在哪里犯了错误吗?

最佳答案

首先,您的输入以 "Response": ... 开头,它必须对应于某个对象中的字段。所以你所拥有的是 Response 容器的 json 表示:

class ResponseContainer {
Response Response;
}

其次,您尝试解析一个列表,但您的输入不是以[(哪个列表应该以)开头,而是以{这表明它是一个对象。因此,如果您希望它是一个列表,请将输入包装在 [ ... ] 中:

因此要么将您的输入更改为列表:

|
V

[
{
"Response": {
"userIds": [
"http://example.com:10249/User/526241869918679991"
],
"userGroupIds": [
"http://example.com:10249/UserGroup/1056659494710887089"
],
"accountIds": [
"http://example.com:10249/ServiceAccount/3354613317986071030"
],
"success": true
}
}
]

^
|

关于java - JsonMappingException : Can not deserialize instance of java. util.List 超出 START_OBJECT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286227/

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