1

Facebookから次の構造のJSON応答があります。

{
    "data": [
      {
         "id": "105458566194298_411506355589516",
         "message": "...",
         "type": "status",
         "created_time": "2012-11-25T17:26:41+0000",
         "updated_time": "2012-11-25T17:26:41+0000",
         "comments": {
            "count": 0
      },
      {
         "id": "105458566194298_411506355589516",
         "message": "...",
         "type": "status",
         "created_time": "2012-11-25T17:26:41+0000",
         "updated_time": "2012-11-25T17:26:41+0000",
         "comments": {
            "count": 0
      }
    ]
}

Gsonライブラリを使用して逆シリアル化しようとしています。

public class FacebookPost {
    public String Message;
    public String Created_time;
}

Gson gson = new GsonBuilder().create();

Type listType = new TypeToken<ArrayList<FacebookPost>>() {}.getType();

ArrayList<FacebookPost> userList = gson.fromJson(responseJsonString, listType);

"data": [ ]これは、応答が--コンテナでラッパーされていない場合に明らかに機能します。しかし、GSONにdataJSON応答の内部を調べるように指示するにはどうすればよいですか?

4

1 に答える 1

2

あなたはそのようなことをするべきです:

InputStream source = retrieveStream(url);
Gson gson = new Gson();
Reader reader = new InputStreamReader(source);
APIResponse response = gson.fromJson(reader, APIResponse.class);

と:

Public class APIResponse{

    ArrayList <FacebookPost> data;

    public class FacebookPost {
        public String message;
        public String created_time;
    }
}
于 2012-11-25T17:41:23.747 に答える