我有以下网址:
events_value =新网址(“https://graph.facebook.com/me/events?access_token=”+ access_token);
网址给出了以下回复:
我试着把它放到JSONArray中:
JSONArray jArray = new JSONArray(events_value); //this where the problem comes
final String[] array_spinner = new String[jArray.length()];
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
String jj=json_data.getString("name");
array_spinner[i] = jj;
}
创建数组时无法输入events_value。
请帮忙!
答案 0 :(得分:1)
此代码可能对您有所帮助。试试这个。
JSONArray jArray = null;
try {
JSONObject json;
// getting JSON string from URL
if (url != null) {
json = jParser.getJSONFromUrl(url);
System.out.println("reading from url" + json);
}
// Getting Array of jArray
jArray = json.getJSONArray(TAG_NAME);
// looping through All jArray
for (int i = 0; i < jArray.length(); i++) {
JSONObject c = jArray.getJSONObject(i);
Log.d(TAG_TYPE, c.getString(TAG_NAME));//print in log cat
}
} catch (JSONException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:1)
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
InputStream is = new URL(url).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}
....
然后你的代码:
JSONArray jArray = (JSONArray) readJsonFromUrl(events_value);
final String[] array_spinner = new String[jArray.length()];
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
String jj=json_data.getString("name");
array_spinner[i] = jj;
}
答案 2 :(得分:0)
你的问题可能是拼写错误但是events_value是一个不是JSONArray的URL字符串,所以你肯定会得到异常。由于相关的url s令牌已过期,我无法看到确切的响应,但请检查响应是JSONObject还是JSONArray。 JSONArray必须在开头和结尾处'['和']',否则它是JSONObject。
<强>更新强>
响应字符串包含数据和分页字段。所以数据字段是JSONArray和分页JSONObject。要检索数据,请使用以下内容:
JSONObject response = new JSONObject(responseString)
JSONArray data = response.getJSONArray("data");
然后,对于数据阵列上的每个项目,解析属性。