我正试图通过Android从Facebook的Graph API获取新闻。 当我试图解析这个JSON时,它什么都没有,不是NULL,而是什么都没有。
这是我的代码,可以获取该Feed。代码是从stackoverflow和Graph API文档
获取的50/50@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_news_feed);
userProfile = (Profile) getIntent().getParcelableExtra("Profile");
stringsForList = new ArrayList<>();
adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, stringsForList);
newsFeed = (ListView)findViewById(R.id.newsFeed);
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
try {
JSONObject mainObject = response.getJSONObject();
JSONObject feed = mainObject.getJSONObject("feed");
JSONArray data = feed.getJSONArray("data");
if(data == null) Log.d(LOG_TAG, "data is null");
// StringBuilder stringForArray;
for(int i = 0; i < data.length(); i++)
{
//stringForArray = null;
JSONObject singleNews = data.getJSONObject(i);
if(singleNews == null) Log.d(LOG_TAG, "news is null");
}
}catch(JSONException ex)
{
ex.printStackTrace();
}
}
}
).executeAsync();
}
这是我正在尝试解析的JSON文件。
"feed": {
"data": [
{
"message": "Я їду на фестиваль ЗАХІД",
"story": "Oleg Misko shared Zaxidfest's photo — with Василь Угринюк and 2 others.",
"created_time": "2016-06-20T06:55:32+0000",
"id": "1272345062793233_1291027040925035"
},
{
"story": "Oleg Misko shared Zaxidfest's post.",
"created_time": "2016-06-20T06:55:01+0000",
"id": "1272345062793233_1291026900925049"
},
{
"message": "Я їду на фестиваль ЗАХІД",
"story": "Demian Mysakovets shared Zaxidfest's photo — with Sophia Hoshko and 2 others.",
"created_time": "2016-06-18T15:27:35+0000",
"id": "1272345062793233_1289904527703953"
},
{
"story": "Oleg Misko shared Територія твого розвитку's post.",
"created_time": "2016-06-18T08:55:45+0000",
"id": "1272345062793233_1289698067724599"
},
{
"story": "Oleg Misko shared JavaRush.RU's photo.",
"created_time": "2016-06-07T19:58:03+0000",
"id": "1272345062793233_1282518005109272"
},
{
"story": "Oleg Misko shared a link.",
"created_time": "2016-03-31T15:42:38+0000",
"id": "1272345062793233_1234673696560370"
},
{
"story": "Oleg Misko updated his profile picture.",
"created_time": "2016-03-19T09:53:02+0000",
"id": "1272345062793233_1220982634596143"
},
{
"message": "posdravliayu.",
"created_time": "2016-02-19T15:44:14+0000",
"id": "1272345062793233_1200638139963926"
},
{
"story": "Oleg Misko shared Zaxidfest's video.",
"created_time": "2016-01-25T09:59:35+0000",
"id": "1272345062793233_1184872831540457"
},
{
"story": "Oleg Misko shared Територія твого розвитку's photo.",
"created_time": "2016-01-14T12:35:45+0000",
"id": "1272345062793233_1178560875504986"
}
]
答案 0 :(得分:0)
如果我这样做
Bundle params = new Bundle();
params.putString("fields", "id,email,gender,name");
new GraphRequest(AccessToken.getCurrentAccessToken(), "me", params, HttpMethod.GET,
new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
if (response != null) {
try {
JSONObject data = response.getJSONObject();
if (data.has("name")) {
nameText.setText(data.getString("name"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).executeAsync();
它成功返回了帐户的用户名。我怎样才能传递新闻? :(