【问题标题】:Value of type org.json.JSONObject cannot be converted to JSONArrayorg.json.JSONObject 类型的值无法转换为 JSONArray
【发布时间】:2013-08-24 20:45:27
【问题描述】:

当我从另一个活动返回字符串并尝试将其转换为 JSONArray 时,程序会显示:

08-22 14:51:35.313: E/YourCartActivity(1134): Error parsing data 
org.json.JSONException:
Value {"yourCart_totalPrice":"5500.00","yourCart_productName":"AAA",
"yourCart_productImg":"http:\/\/10.0.2.2\/appserv\/products\/aaa02.jpg",
"yourCart_productID":"0000002",
"yourCart_productAmount":"2",
"yourCart_shopID":"001"} 
of type org.json.JSONObject cannot be converted to JSONArray

有人知道如何解决这个问题吗?

这是我的代码:

String json = yourCartConnect.getYourCartDetails();

        try {
            JSONArray jResult = new JSONArray(json);


            for(int i=0;i<json.length();i++){
                JSONObject f = jResult.getJSONObject(i);
                YourCartEntry resultRow = new YourCartEntry();

                resultRow.setYourCart_shopID(f.getString("yourCart_shopID"));
                resultRow.setYourCart_totalPrice(f.getString("yourCart_totalPrice"));
                resultRow.setYourCart_productName(f.getString("yourCart_productName"));     
                resultRow.setYourCart_productID(f.getString("yourCart_productID"));
                resultRow.setYourCart_productImg(f.getString("yourCart_productImg"));
                resultRow.setYourCart_productAmount(f.getString("yourCart_productAmount"));

                yourCartEntries.add(resultRow);
            }

        setList(yourCartEntries);


        } catch (JSONException e) {
            Log.e("YourCartActivity", "Error parsing data " + e.toString());
            errorConnectToServer();
        }

【问题讨论】:

  • 你的 json 是一个 json 对象,而不是一个 json 数组 ...
  • 您是否使用 PHP 构建 JSON 响应字符串?
  • 请贴出完整代码!
  • 您正在解析 JsonArray 中的 Jsonobject。 [] 内的数据是 JsonArray,{} 内的键值对是 JSONObject

标签: android json string arrays jsonobject


【解决方案1】:

试试这个代码:

String json = yourCartConnect.getYourCartDetails();



         try {
                JSONObject jsonObject = new JSONObject(json)
                JSONArray jResult = jsonObject.getJSONArray("Your array key");

                for(int i=0;i<jResult.length();i++){
                    JSONObject f = jResult.getJSONObject(i);
                   // write your remaining code here
                }

            setList(yourCartEntries);


            } catch (JSONException e) {
                Log.e("YourCartActivity", "Error parsing data " + e.toString());
                errorConnectToServer();
            }

【讨论】:

    【解决方案2】:

    试试这个代码..

    try {
        JSONArray jArray = new JSONArray("your JSON result........");
        JSONObject json_data = null;
        StringBuilder print = new StringBuilder();
        for (int i = 0; i < jArray.length(); i++) {
            json_data = jArray.getJSONObject(i);
            System.out.println("json_data : " + json_data);
            System.out.println("\n");
            print.append(json_data.getString("yourCart_shopID") + ", " + 
                json_data.getString("yourCart_totalPrice") + ", " + 
                json_data.getString("yourCart_productName") + ", " + 
                json_data.getString("yourCart_productID") + ", " + 
                json_data.getString("yourCart_productImg") + ", " + 
                json_data.getString("yourCart_productAmount") + "\n");
            yourCartEntries.add(print.toString());
        }
        setList(yourCartEntries);
    } catch (JSONException e1) {
        e1.printStackTrace();
    }
    

    【讨论】:

      【解决方案3】:

      你有 JSONObject 字符串,而不是 JSONArray,

      JSONArray here

      EG:

      [{"yourCart_totalPrice":"5500.00","yourCart_productName":"AAA","yourCart_productImg":"http:\/\/10.0.2.2\/appserv\/products\/aaa02.jpg","yourCart_productID":"0000002","yourCart_productAmount":"2","yourCart_shopID":"001"}]
      

      【讨论】:

        【解决方案4】:

        试试这个..

        String json = yourCartConnect.getYourCartDetails();
        
                try {
                    if(!TextUtils.isEmpty(json)){
                      JSONObject f=new JSONObject(json);
                      YourCartEntry resultRow = new YourCartEntry();    
                      resultRow.setYourCart_shopID(f.getString("yourCart_shopID"));
                      resultRow.setYourCart_totalPrice(f.getString("yourCart_totalPrice"));
                      resultRow.setYourCart_productName(f.getString("yourCart_productName"));     
                      resultRow.setYourCart_productID(f.getString("yourCart_productID"));
                      resultRow.setYourCart_productImg(f.getString("yourCart_productImg"));
                      resultRow.setYourCart_productAmount(f.getString("yourCart_productAmount"));
                      setList(resultRow);
                    }
                } catch (JSONException e) {
                    Log.e("YourCartActivity", "Error parsing data " + e.toString());
                    errorConnectToServer();
                }
        

        【讨论】:

          猜你喜欢
          • 2021-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-03
          • 1970-01-01
          相关资源
          最近更新 更多