25

嘿,我遇到了一个基于杰克逊反序列化的问题,这是我尝试过的以及我得到的错误。

错误:com.fasterxml.jackson.core.JsonParseException:意外字符('}'(代码 125)):期望双引号开始字段名称

Java 代码

List<Contact> ds = mapper.readValue(data, mapper.getTypeFactory().constructCollectionType(List.class, Contact.class));

 //OR this one

List<Contact> ds = mapper.readValue(data, new TypeReference<List<Contact>>() {});

我的 JSON

[   
    {
        "id": "200",
        "name": "Alexia Milano",
        "email": "minalo@gmail.com",
        "prenom": "xx-xx-xxxx,x - street, x - country",

    }, {
        "id": "201",
        "name": "Johnny Depp",
        "email": "johnny_depp@gmail.com",
        "prenom": "xx-xx-xxxx,x - street, x - country",

    }
]
4

2 回答 2

51

如果你使用json validator,你可以看到更详细的错误信息:

Parse error on line 6:
...ntry",            },    {        "id
---------------------^
Expecting 'STRING'

后面有多余的逗号"xx-xx-xxxx,x - street, x - country"。如果您从这两个地方删除它,您就有了有效的 JSON 和 Jackson 解析工作。

于 2013-10-31T15:01:04.783 回答
9

这是因为您的最后一个条目,,在您的最后一个值之后有一个。这就是杰克逊期待另一个领域的原因。

于 2013-10-31T15:02:23.083 回答