【发布时间】:2021-11-16 14:36:36
【问题描述】:
大家好。我正在解析 JSON 响应并收到此错误。这就是我获得 JSON 响应的方式:
{
"id": 12,
"banner_name": "testproject1.indigierp.com/images/banners/promo1.jpg"
}{
"id": 14,
"banner_name": "testproject1.indigierp.com/images/banners/promo3.jpg"
}{
"id": 15,
"banner_name": "testproject1.indigierp.com/images/banners/promo4.jpg"
}
这是我在 Android 上尝试过的:
final RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
String BANNER_URL = "http://testproject1.indigierp.com/api/banner_details";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, BANNER_URL, null, response -> {
for (int i = 0; i < response.length(); i++) {
try {
JSONObject jsonObject = response.getJSONObject("banner_name");
Log.e("Image", String.valueOf(jsonObject));
} catch (JSONException e) {
e.printStackTrace();
}
}
requestQueue.add(jsonObjectRequest);
错误:
type java.lang.String cannot be converted to JSONObject
我该如何解决它。请适当引导。谢谢
【问题讨论】:
-
banner_name 是你的字符串而不是你的 JSONObject。您需要更改 String banner_name = response.getJSONObject("banner_name"); 此外,如果 response 是您的 json 数组,那么您必须检索 JSONObject通过迭代从中获取,然后从该 json 对象中检索 banner_name。
-
必需类型:字符串提供:JSONObject
-
您的响应 JSON 不是有效的 JSON。如果它是一个数组,那么它在 JSON 对象之间缺少逗号。
-
我已经编辑了我的评论。检查一下
标签: android json android-volley