Java IGSON fromJSon方法don´;t工作正常-为什么?

Java IGSON fromJSon方法don´;t工作正常-为什么?,java,json,Java,Json,我有以下JSON代码: { "tstamp": "2012-11-21 18:00", "id": 123, "publicationList": [ { "id": "1", "state": "Publication.IMMEDIATELY", "channel": "Channel.TIMETABLE", "startDate": "2001-12-17"

我有以下JSON代码:

{
    "tstamp": "2012-11-21 18:00",
    "id": 123,
    "publicationList": [
        {
            "id": "1",
            "state": "Publication.IMMEDIATELY",
            "channel": "Channel.TIMETABLE",
            "startDate": "2001-12-17",
            "endDate": "2001-12-17"
        }
    ]
}
现在我想生成一个Java对象。记住publicationList是一个Java.Util.List

MessageDto messageDto = gson.fromJson(FileUtils.readFileToString(new File(
           "mapper/message.json")),
            MessageDto.class);
Gson配置:

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm").create();
我收到以下错误消息:

com.google.gson.JsonParseException: The JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@3782da3d failed to deserialize json object [{"id":"1","state":"Publication.IMMEDIATELY","channel":"Channel.TIMETABLE","startDate":"2001-12-17","endDate":"2001-12-17"}]

我忘了一个重要的信息!“publicationList”使用接口,而不是correcht Java POJO。现在我想,我需要一个由我自己编写的反序列化程序。

您的JSON是一个数组,而不是一个对象

好的,但是它怎么是一个正确的对象呢?我犯了什么错?我如何在JSON中创建对象?您也应该将MessageDto发布到。但您的主要错误是JSON与您试图读入的类不匹配。查看他的JSON是否有效(它不是数组)。
[{“id”:…
在我看来像是一个数组。它看起来像他的对象的publicationList部分。请将
MessageDto的代码发布到
。您需要更正MessageDto类,共享它以获得正确的帮助。您需要创建两个单独的值对象类来解析JSON。其中一个包含带有Ar的
tstamp,id,publicationListpublicationList的rayList
和另一个包含publicationList值详细信息的rayList。