这里是JSON response。
以下作品:
jsonObject.get("title").getAsString();
jsonObject.get("author").getAsJsonObject().get("profile_photo").getAsString();
但jsonObject.get("primary_photo").getAsString()
(来自第60行)返回Unsupported Exception:null错误。我尝试用getAsString()
替换toString()
,但后者返回一个空字符串。
答案 0 :(得分:1)
试试这个
在代码中使用optJSONObject
和optString
。根目录是[]
,因此您应该使用JSONArray
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++) {
// use optJSONObject
JSONObject author = jsonArray.optJSONObject(i).optJSONObject("author");
// use optString , it did not return null
String profile_photo = author.optString("profile_photo");
String primary_photo = jsonArray.optJSONObject(i).optString("primary_photo");
}
} catch (JSONException e) {
e.printStackTrace();
}
<强> GSON 强>
JsonArray jsonElements = new JsonParser().parse(response).getAsJsonArray();
for (int i = 0; i < jsonElements.size(); i++) {
JsonObject jObject = jsonElements.get(i).getAsJsonObject();
// edited here
String primary_photo = jObject.get("primary_photo").getAsString();
JsonObject author = jObject.getAsJsonObject("author");
String profile_photo = author.get("profile_photo").getAsString();
}
答案 1 :(得分:1)
我认为问题是,您的JSON响应包含一个数组。您必须从响应字符串创建一个JSONArray,然后迭代它以获取您的值。或者,如果此数组始终包含一个对象:
JSONArray jsonArray = new JSONArray(response);
JSONObject jsonObject = jsonArray.getJSONObject(0);
答案 2 :(得分:1)
试试这个:
app.constants.ts
答案 3 :(得分:1)
Try this,
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject author = jsonArray.get(i).getJSONObject"author");
String profile_photo = author.getString("author");
}
} catch (JSONException e) {
e.printStackTrace();
}