2013-02-22 85 views
1

我是JSON的新手。我正在与json processing library。给定一个JSON如:如何从FB图API解析来自JSON数组的数据?

{ 
    "data": [ 
     { 
     "name": "John Doe", 
     "id": "2980311" 
     }, 
     { 
     "name": "Jane Doe", 
     "id": "10221412" 
     }, 
     { 
     "name": "George Doe", 
     "id": "111623489" 
     } 
    ], 
    "paging": { 
     "blah" : "blah" 
    } 
} 

如何获取id值。我已经试图让一个阵列工作开始:

String URL = "https://graph.facebook.com/username/friends?access_token="; 
String token = ""; 
String[] response = loadStrings(URL+token); 

if(response != null) { 
    JSONObject result = new JSONObject(response); 
    JSONArray data = result.getJSONArray("data"); 
} 

而这种打印出:

JSONObject["data"] not found. 
JSONObject["data"] is not a JSONArray. 

但它肯定获取数据。如果我打印出response,我会看到数据。

我错过了什么?

回答

2

,我没有看到在接受String[](您response变量的类型)库JSONObject构造。有JSONObject(String)JSONObject(Object)。如果你通过String[]JSONObject,它会匹配后者,它不会(立即)看起来像它会做你想做的。

我怀疑你想从URL中得到一个String,然后你会传入JSONObject(String),此时事情应该开始正常工作。

+0

确实,那是做到了。谢谢! – mix 2013-02-22 01:31:08

+1

@mix:非常好!这是在黑暗中的一点点,因为我没有使用过图书馆,很高兴帮助! – 2013-02-22 01:32:01

0

尝试与此..

GraphObject responseGraphObject = response.getGraphObject();
JSONObject json = responseGraphObject.getInnerJSONObject();

     JSONObject sys = json.getJSONObject("data"); 
      Log.e("urlimage json", sys.getString("url"));