【问题标题】:JsonMappingException: Can not deserialize instance of java.util.List out of START_OBJECT tokenJsonMappingException:无法从 START_OBJECT 令牌中反序列化 java.util.List 的实例
【发布时间】:2014-10-09 19:14:01
【问题描述】:

下面有一个 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 sn-p 如下

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

以及它们的 getter 和 setter

我的声明是否错误,因为我收到“org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.List out of START_OBJECT token”error on parse”

解析逻辑如下:

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

知道我在哪里犯错了吗?

【问题讨论】:

    标签: java jackson


    【解决方案1】:

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

    class ResponseContainer {
        Response Response;
    }
    

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

    所以要么将您的输入更改为列表:

    |
    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 数组是响应容器数组,而不是响应数组。
    • 糟糕。谢谢。我会修改的。
    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 2016-09-25
    • 2019-03-06
    • 2021-09-05
    • 2020-07-22
    • 2019-06-01
    • 2019-12-22
    相关资源
    最近更新 更多