我在解决Facebook数据正确解析方面遇到了一些问题。
我正在努力实现应用程序的一部分,以允许用户在应用程序中选择和使用他们自己的一张Facebook照片。我已经获得了facebook登录/注销代码,我目前正在获取令牌(登录后)以收集用户相册信息。权限集也很好用,但我现在仍然试图让JSON信息正确解析。以下是我需要解析的信息的示例摘录:
"data": [
{
"id": "3486732467234",
"from": {
"name": "Persons Name",
"id": "Persons ID"
},
"name": "Vacation",
"location": "City",
"link": "https://www.facebook.com/album.php?fbid=434235&id=324343&aid=2430",
"cover_photo": "3489234432",
"privacy": "everyone",
"count": 60,
"type": "normal",
"created_time": "2007-06-03T23:01:16+0000",
"updated_time": "2011-03-18T19:46:43+0000",
"can_upload": true
},
{
"id": "4043544665",
"from": {
"name": "Persons Name",
"id": "Persons ID"
},
"name": "Vacation 2",
"location": "City",
"link": "https://www.facebook.com/album.php?fbid=4043434665&id=508154335&aid=2555",
"cover_photo": "5434543",
"privacy": "everyone",
"count": 60,
"type": "normal",
"created_time": "2007-06-03T22:53:03+0000",
"updated_time": "2011-03-18T19:45:55+0000",
"can_upload": true
}],
...more paging JSON information ...}}
我需要能够提取相册信息才能在列表中显示相册名称(并在另一个查询中使用该ID)。一旦我可以显示相册,我就会使用这些ID执行另一个查询来获取该相册中的照片。我也可以再次获取该信息,我只是不确定如何正确解析它。
有人可能会将此解析为列表视图的任何有用提示将不胜感激。
我需要定位从第一个列表中提取第一个ID和相册名称(“id”:“3486732467234”和“名称”:“假期”)
答案 0 :(得分:5)
为什么不尝试使用json类...
类似的东西:
jsonObject = new JSONObject(your_data);
jArray = jsonObject.getJSONArray("data");
for(int i =0;i<jArray.length();i++){
String name= jArray.getJSONObject(i).getString("name");
String location= jArray.getJSONObject(i).getString("location");
等
答案 1 :(得分:4)
在进行Graph API调用时,新的Android Facebook SDK 3.0会在Response.Callback()侦听器中返回一个Response对象。此响应对象可用于创建GraphObject,可用于获取JSON ... ex:
Request graphRequest = Request.newGraphPathRequest(session, graphRequestString, new Request.Callback() {
@Override
public void onCompleted(Response response) {
//Create the GraphObject from the response
GraphObject responseGraphObject = response.getGraphObject();
//Create the JSON object
JSONObject json = responseGraphObject.getInnerJSONObject();
}
});