Java IGSON fromJSon方法don´;t工作正常-为什么?
我有以下JSON代码: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"
{
"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。