Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JsonMappingException:无法反序列化START\u对象标记之外的java.util.List实例_Java_Jackson - Fatal编程技术网

JsonMappingException:无法反序列化START\u对象标记之外的java.util.List实例

JsonMappingException:无法反序列化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"

下面有一个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;
私有布尔成功;
私有列表帐户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数组。谢谢。我会修改。