在android中读取Json数组

nal*_*ver 32 java android json

我正在尝试读取JSON数组.这是我的代码.

        JSONArray jArray = new JSONArray(jsonString);

        System.out.println("*****JARRAY*****"+jArray.length());
        for(int i=0;i<jArray.length();i++){


                JSONObject json_data = jArray.getJSONObject(i);
                Log.i("log_tag","_id"+json_data.getInt("account")+
                        ", mall_name"+json_data.getString("name")+
                        ", location"+json_data.getString("number")+
                        ", telephone"+json_data.getString("url")+
                        ",----"+json_data.getString("balance")+
                        ",----"+json_data.getString("credit")+
                        ",----"+json_data.getString("displayName")
                );

        }
Run Code Online (Sandbox Code Playgroud)

我的示例JSON文件语法如下,

{
    "list": [
        {
            "account": 1,
            "name": "card",
            "number": "xxxxx xxxx xxxx 2002",
            "url": "http://www.google.com",
            "balance": 1.0,
            "credit": 1.0,
            "displayName": "hsbc bank" 
        },
        {
            "account": 2,
            "name": "card2",
            "number": "xxxxx xxxx xxxx 3003",
            "url": "http://www.google.com",
            "balance": 2.0,
            "credit": 2.0,
            "displayName": "nsb bank" 
        } 
    ],
    "count": 2
}
Run Code Online (Sandbox Code Playgroud)

前面有一个大括号.当我尝试执行此代码块时,它会出错

JSONArray文本必须以'['在...的字符1开头

有人遇到过这样的问题吗?任何帮助将不胜感激.如果可以的话,请给我一个示例代码块.提前致谢.

Buh*_*ndi 66

JSON对象与开始{和一个结束}而JSON阵列与开头[和一个结束].

在您的情况下,将代码更改为JSONObject代替.

JSONObject json = new JSONObject(jsonString);
JSONArray jArray = json.getJSONArray("list");

System.out.println("*****JARRAY*****" + jArray.length());

for(int i=0; i<jArray.length(); i++){
    JSONObject json_data = jArray.getJSONObject(i);

    Log.i("log_tag", "_id" + json_data.getInt("account") +
        ", mall_name" + json_data.getString("name") +
        ", location" + json_data.getString("number") +
        ", telephone" + json_data.getString("url") +
        ",----" + json_data.getString("balance") +
        ",----" + json_data.getString("credit") +
        ",----" + json_data.getString("displayName")
    );
}
Run Code Online (Sandbox Code Playgroud)

  • 太棒了,很高兴得到帮助.别忘了**接受**答案!:-) (2认同)

Mat*_*iss 7

首先需要创建一个JSONObject来获取Array,这样的东西应该可以工作:

JSONObject jsonObject = new JSONObject(jsonString);

JSONArray jArray = jsonObject.getJSONArray("list");
Run Code Online (Sandbox Code Playgroud)