Спасибо за чтение!Вложенный анализ JSON с facebook sdk
Я пытаюсь разработать приложение для Android, но я зациклился на том, как получить пользовательские «симпатии». Все, что мне нужно, это всего лишь значения для каждого «имени». Здесь будут «Jay Chou», «Eason Chan» и «Facebook Developers». Ниже приводится текст JSON
{
"languages": [
{
"id": "111735208843636",
"name": "Chinese"
},
{
"id": "106059522759137",
"name": "English"
}
],
"id": "100005065353669",
"likes": {
"data": [
{
"category": "Musician/band",
"name": "Jay Chou",
"id": "109155665769390",
"created_time": "2013-06-11T18:54:44+0000"
},
{
"category": "Musician/band",
"name": "Eason Chan",
"id": "105468519487919",
"created_time": "2013-06-05T20:33:26+0000"
},
{
"category": "Product/service",
"name": "Facebook Developers",
"id": "19292868552",
"created_time": "2013-05-31T01:35:17+0000"
}
],
"paging": {
"next": "https://graph.facebook.com/100005065353669/likes? limit=5000&offset=5000&__after_id=19292868552"
}
}
}
Этот кусок кода для извлечения «язык» пользователя, и она отлично работает для меня.
JSONArray languages = (JSONArray)user.getProperty("languages");
if (languages.length() > 0) {
ArrayList<String> languageNames = new ArrayList<String>();
for (int i=0; i < languages.length(); i++) {
JSONObject language = languages.optJSONObject(i);
languageNames.add(language.optString("name"));
}
userInfo.append(String.format("Languages: %s\n\n", languageNames.toString()));
}
user
происходит от параметра функции private String buildUserInfoDisplay(GraphUser user)
и userinfo
происходит от StringBuilder userInfo = new StringBuilder("");
кто-нибудь может мне помочь? Действительно ценю это!
Спасибо за ответ! Я использовал почти точный код, который вы предоставили, он выдает ошибку NullPointer на строке getProperty («данные»). Я не могу понять, как это произойдет. Я имею в виду, что должен быть массив JSON с именем «data». – user2464763
которые вы используете? – danijoo