0

解析数据时出错 org.json.JSONException:

java.lang.String 类型的值无法转换为 JSONArray

JSONArray jsonArray = new JSONArray(result);
                    JSONArray ja= (JSONArray) jsonArray.get(0);
                    JSONObject jb = (JSONObject) ja.get(0);
                    //String firstvalue = jb.getString("0");
                    int secondvalue = jb.getInt("customer_id");

Myjson 输出应该像[[{"0":"2","customer_id":"2"}]]

我正在使用像这样的 php 来生成输出

$output[]= $customerid;
print(json_encode($output));
4

2 回答 2

1

对于您的解析问题,它已经回答了@

如何在Android中调用JSON对象

它是一个字符串

String secondvalue = jb.getString("CUSTOMER_ID");
try
{
   int value = Integer.parseInt("secondvalue");
   Log.i("Customer id",""+value);
}catch(NumberFormatException e)
{
  e.printStackTrace();
}

编辑:

  String myjson = "["
                  +"["
                  +"{"
                  +  " \"0\": \"2\"," 
                  +  "\"CUSTOMER_ID\": \"2\"" 
                  +   "}"
                  +  "]"
                  + "]";

解析

  try {
        JSONArray jsonArray = new JSONArray(myjson);
        JSONArray ja= (JSONArray) jsonArray.get(0);
        JSONObject jb = (JSONObject) ja.get(0);
        String firstvalue = jb.getString("0");
        String secondvalue = jb.getString("CUSTOMER_ID");
        int value = Integer.parseInt(secondvalue);
        Log.i("Customer id",""+value);
        Log.i("first value is",firstvalue);
        Log.i("second value is",secondvalue);
    }catch(NumberFormatException e)
     {
    e.printStackTrace();
    }catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
于 2013-07-22T17:02:29.730 回答
0

它只是意味着您作为输入提供的字符串(例如 some_string)new JSONArray(some_string)无法转换为 JSON 数组,因为该字符串不遵循所需的 json 数组格式。下面给出了一个正确的 JSON 数组字符串的示例

[ { "title":"title_1", "name":"name_1" }, { "title":"title_2", "name":"name_2" } ]

于 2013-07-22T16:37:16.330 回答