I'm trying to read a JSON array. Here is my code.

        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
}

It has a curly brace in front. When i try to execute this code block it gives an error saying

A JSONArray text must start with '[' at character 1 of....

Has anyone encountered a problem like this? Any help would be greatly appreciated. Please show me a sample code block if can. Thanks in advance.

推荐答案

JSON对象以{开头,以}结尾,而JSON Array以[开头,以]结尾.

在您的情况下,将代码更改为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")
    );
}

Json相关问答推荐

如何使用JQ将JSON字符串替换为解析后的类似功能?

JSON API返回多个数组,需要帮助拼合数据以存储在SQL Server数据库表中

如何在我的响应模型中修复此问题:[期望的值类型为';Map<;Dynamic,Dynamic&>;,但获得的值类型为';NULL&39;]

集成wix.comstore API|变音符号问题

颠簸转换问题

如何将该 JSON 解析为 Kotlin 类?

自定义将 struct 解组为切片映射

使用 json_query 过滤嵌套列表中的元素

从 json 对象中过滤掉所有出现的给定属性

为什么JsonConvert反序列化对象以int但不长失败

如何在 Django 的模板语言中获取 json 键和值?

C# 合并 2 个几乎相同的 JSON 对象

Jackson Json:如何将数组转换为 JsonNode 和 ObjectNode?

json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

如何使用 Swift 从 NSURLSession 获取 cookie?

使用 jq,将对象数组转换为具有命名键的对象

PostgreSQL 中的 JSON 模式验证?

有 Json 标签但未导出

从 Json 对象 Android 中获取字符串值

从 JSON 中 Select 不同的值