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)