2012-11-25 37 views
1

反序列化JSON的Facebook動態消息我從Facebook具有以下結構的JSON響應:使用GSON

{ 
    "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在JSON響應中尋找data

回答

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; 
    } 
} 
+0

謝謝你,就像一個魅力 – Johan