【问题标题】:read json file and parse inner json array in java在java中读取json文件并解析内部json数组
【发布时间】:2014-11-29 09:57:41
【问题描述】:
{
"vers": 0.01,
"config": {
    "rate": "perhr",
    "valueColumns": [
        "vCPU",
        "ECU",
        "memoryGiB",
        "storageGB",
        "linux"
    ],
    "currencies": [
        "USD"
    ],
    "regions": [
        {
            "region": "us-east",
            "instanceTypes": [
                {
                    "type": "generalCurrentGen",
                    "sizes": [
                        {
                            "size": "t2.micro",
                            "vCPU": "1",
                            "ECU": "variable",
                            "memoryGiB": "1",
                            "storageGB": "ebsonly",
                            "valueColumns": [
                                {
                                    "name": "linux",
                                    "prices": {
                                        "USD": "0.013"
                                    }
                                }
                            ]
                        },
                        {
                            "size": "t2.small",
                            "vCPU": "1",
                            "ECU": "variable",
                            "memoryGiB": "2",
                            "storageGB": "ebsonly",
                            "valueColumns": [
                                {
                                    "name": "linux",
                                    "prices": {
                                        "USD": "0.026"
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}
}

嗨,我想阅读这个 json 文件。我尝试了谷歌的各种方法,但在valuesColumns 得到了一个空值。我必须阅读 sizes 数组并且必须放入列表中。

【问题讨论】:

标签: java json arrays


【解决方案1】:

我认为如果你格式化你的 json 将会对你的事业有所帮助。因为它很难阅读。谷歌搜索 JSON 美化器很快就找到了我this one

使用 JSON 时,您的浏览器控制台为检查和处理数据提供了一个很好的环境。我将它粘贴到浏览器控制台中并做了(每行后按回车键):

var x = { ... paste JSON here ... } 
x
x.config
x.config.valueColumns

这告诉我x 是一个 JSON 对象,config 是一个 JSON 对象,valueColumns 是一个 JSON 数组

现在到 java。获取一个 json 库,访问 valueColumns 将类似于:

JSONObject x = new JSONObject("{ ... JSON string ... }");
JSONObject config = x.getJSONObject("config");
JSONArray valueColumns = config.getJSONArray("valueColumns");

然后您可以遍历 valueColumns 并提取您需要的内容。

请注意,以上内容只会让您到达config 下的第一个valueColumns 数组。通过遵循相同的原则,您可以更深入地了解结构,并为 sizes 数组中的对象取出 valueColumns,如果这是您真正想要的。

【讨论】:

    【解决方案2】:

    对于将 json 解析为 java 有简单的步骤。 下面的代码 sn-p 可能会对您有所帮助。

    // parse json to java
    Object obj = parser.parse(s);
            JSONObject json = (JSONObject) obj;
    
            JSONObject o = (JSONObject) json.get("config");
            //get json array.
            JSONArray array = (JSONArray) o.get("valueColumns");
            System.out.println(array.toJSONString());
            //access element by index 
            System.out.println(array.get(0));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      • 2014-02-26
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      相关资源
      最近更新 更多