我试图通过传递页面ID作为参数来提取喜欢Facebook页面的人的详细信息。我提取了该页面的JSON内容,现在我要提取用户的名称和ID。
我如何实现这一目标?
JSONObject json = readurl("https://graph.facebook.com/pageid");
System.out.println(json.toString());
System.out.println("Page id is:"+json.get("id"));
"likes":{
"data":[
{
"id":"*******",
"name":"vv"
},
{
"id":"********",
"name":"abc"
},
答案 0 :(得分:2)
JSONObject json = readurl("https://graph.facebook.com/pageid");
JSONArray dataJsonArray = json.getJSONArray("data");
for(int i=0; i<dataJsonArray.length; i++) {
JSONObject dataObj = dataJsonArray.get(i);
String id = dataObj.getString("id");
//Similarly you can extract for other fields.
}
基本上data
是JSONArray,因为它以[
开头。所以简单地get
不起作用,你必须使用JSONArray。
注意:我还没有编译这段代码,但我想我已经给了你一个想法。另请参阅this链接以了解在java中解析JSON的基础知识。
答案 1 :(得分:2)
此代码段未经过测试,但我确信它有效:
JSONArray data = json.getJSONArray("data");
for (int i=0; i < data.length(); i++) {
JSONObject o = data.getJSONObject(i);
sysout(o.getString("id");
sysout(o.getString("name");
}
答案 2 :(得分:0)
我使用的是谷歌的Gson图书馆:https://code.google.com/p/google-gson/