【问题标题】:Reading a Json Array in android在android中读取Json数组
【发布时间】:2011-05-13 19:01:31
【问题描述】:

我正在尝试读取 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")
                );

        }

我的示例 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
}

它前面有一个花括号。当我尝试执行这个代码块时,它给出了一个错误提示

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

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

【问题讨论】:

    标签: java android json


    【解决方案1】:

    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")
        );
    }
    

    【讨论】:

    • 太好了,很高兴能帮上忙。不要忘记接受答案! :-)
    【解决方案2】:

    您首先需要创建一个 JSONObject 以从中获取数组,这样应该可以:

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

    【讨论】:

      【解决方案3】:

      字符串结果 = js.getString("结果");

                          JSONArray js2 = new JSONArray(result);
                          for (int i = 0; i < js2.length(); i++) {
                              JSONObject js3 = js2.getJSONObject(i);
                              categoriescity.add(js3.getString("Title"));
                          }
      

      【讨论】:

      • 非常非常感谢您,Rashid Mirazimi。你拯救了我的一天。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 2012-05-11
      • 2016-02-02
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多