0

Java クラスに外部 JSON ファイルを入力したいのですが、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 Builder と Gson Instance Creator です:

 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();

     }

 }

これは、Java クラスの PublicationDto です。

public class PublicationDto{

    private static final long serialVersionUID = 1L;

    private Long id;

    private PublicationState state = PublicationState.IMMEDIATELY;

    private PublicationChannel channel;

    private Date startDate;

    private Date endDate;


    //getter and setter methods

}
4

1 に答える 1

0

あなたのエラーは何ですか?メインの POJO オブジェクトもコードにありません。

このオブジェクトが であると仮定するとPublications、使用する必要があるのは

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

お使いのアダプターは機能しません。さらに、「L」を含む ID も機能しないと思います (L をドロップします)。GSon は数値を正しい Long 型にキャストします。

于 2013-07-04T19:21:35.000 に答える