如何解析来自FB图形API的JSON数组中的数据?

时间:2013-02-22 01:02:57

标签: java json processing

我是JSON的新手。我正在使用json processing library。给出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 个答案:

答案 0 :(得分:2)

我在该库中没有看到JSONObject构造函数接受String[]response变量的类型)。有JSONObject(String),而且JSONObject(Object)。如果你将String[]传递给JSONObject,那么它将与后者匹配,后者不会(立即)向我看来它会做你想做的事。

我怀疑您希望从网址中获取一个String,然后将其传递到JSONObject(String),此时应该可以正常运行。

答案 1 :(得分:0)

试试这个..

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

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