【问题标题】:JSON java.lang.String cannot be converted to JSONObjectJSON java.lang.String 无法转换为 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 对象之间缺少逗号。
  • 我已经编辑了我的评论。检查一下

标签: android json android-volley


【解决方案1】:

你的用法是错误的。尝试像下面这样使用它。您正在尝试将字符串传递给对象。

JSONObject jsonObject = new JSONObject(jsonString);
String banner_name = jsonObject.getString("banner_name"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多