Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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
用GSon生成器和JSon文件填充Java类_Java_Gson - Fatal编程技术网

用GSon生成器和JSon文件填充Java类

用GSon生成器和JSon文件填充Java类,java,gson,Java,Gson,我想用一个外部JSon文件填充一个Java类,并使用Gson Builder。但是我的Java类将不会由我在JSon文件中声明的值填充。有什么问题?谢谢你的帮助 这是我的Json文件: { "tstamp": "2012-11-21 18:00", "id": 123, "publicationList": [ { "id": "1L", "state": "PublicationState.IMMEDIATELY", "channel":

我想用一个外部JSon文件填充一个Java类,并使用Gson Builder。但是我的Java类将不会由我在JSon文件中声明的值填充。有什么问题?谢谢你的帮助

这是我的Json文件:

{
"tstamp": "2012-11-21 18:00",
"id": 123,
"publicationList": [
    {
        "id": "1L",
        "state": "PublicationState.IMMEDIATELY",
        "channel": "PublicationChannel.TIMETABLE", 
        "startDate": "2001-12-17 18:00",
        "endDate": "2001-12-17 18:00"
    },
    {
        "id": "2L",
        "state": "PublicationState.IMMEDIATELY",
        "channel": "PublicationChannel.NVS", 
        "startDate": "2001-12-17 18:00",
        "endDate": "2001-12-17 18:00"
    },
    {
        "id": "3L",
        "state": "PublicationState.IMMEDIATELY",
        "channel": "PublicationChannel.NVS", 
        "startDate": "2001-12-17 18:00",
        "endDate": "2001-12-17 18:00"
    }
]
}
这是我的Gson生成器和Gson实例创建者:

 Gson gson = new GsonBuilder()
            .setDateFormat("yyyy-MM-dd HH:mm")
            .registerTypeAdapter(Publication.class,
                    new PublicationInstanceCreator()).create();

 public class PublicationInstanceCreator implements
    InstanceCreator<PublicationDto> {

     @Override
     public PublicationDto createInstance(Type type) {

         return new PublicationDto();

     }

 }

你的错误是什么?代码中也缺少主POJO对象

假设此对象是
出版物
,则只需使用

Publications p = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm").create().fromJson(json, Publications.class);
你的适配器无法工作。另外,我认为带“L”的ID也不起作用(去掉L),GSon会将数字转换为正确的长类型

Publications p = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm").create().fromJson(json, Publications.class);