JsonMappingException:无法反序列化START\u对象标记之外的java.util.List实例
下面有一个JSON,我正试图使用Jackson将其解析为POJOJsonMappingException:无法反序列化START\u对象标记之外的java.util.List实例,java,jackson,Java,Jackson,下面有一个JSON,我正试图使用Jackson将其解析为POJO { "Response": { "userIds": [ "http://example.com:10249/User/526241869918679991" ], "userGroupIds": [ "http://example.com:10249/UserGroup/1056659494710887089"
{
"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;
私有布尔成功;
私有列表帐户ID;
私有列表用户ID;
私有列表usergroupid;
还有他们的能手和二传手
当我得到“org.codehaus.jackson.map.JsonMappingException:cannot deserialize java.util.List实例out of START_OBJECT token”error on parse时,我的声明是否有误
解析逻辑如下:
jsonMapper.readValue(responseJSONString, new TypeReference<List<Response>>() {});
jsonMapper.readValue(responseJSONString,newTypeReference(){});
知道我在哪里出错了吗?首先,您的输入以
“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
}
}
]
^
|
您的JSON数组是一个响应容器数组,而不是responses.Wops数组。谢谢。我会修改。