JSON java.lang.String 无法转换为 JSONObject
Posted
技术标签:
【中文标题】JSON java.lang.String 无法转换为 JSONObject【英文标题】:JSON java.lang.String cannot be converted to JSONObject 【发布时间】: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 对象之间缺少逗号。 我已经编辑了我的评论。检查一下 【参考方案1】:你的用法是错误的。尝试像下面这样使用它。您正在尝试将字符串传递给对象。
JSONObject jsonObject = new JSONObject(jsonString);
String banner_name = jsonObject.getString("banner_name"))
【讨论】:
以上是关于JSON java.lang.String 无法转换为 JSONObject的主要内容,如果未能解决你的问题,请参考以下文章
从空 sharedpreference 中检索 json 数组时,java.lang.String 无法转换为 JSONObject 异常出现
JSON 异常:值 <? java.lang.String 类型的无法转换为 JSONObject
org.json.JSONException:java.lang.String 类型的值连接无法转换为 JSONArray
出错了:java.lang.string can not cast to org 手机出现这,
org.json.JSONException:java.lang.String 类型的值 <br 无法转换为 JSONObject
解析为对象而不是数组时出现Json错误:JSONObject中的getJSONObject(java.lang.String)无法应用于(int)