{
"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
数组并且必须列入清单。
答案 0 :(得分:1)
我认为如果你格式化你的json,它将有助于你的事业。因为它很难阅读。谷歌搜索JSON美化师很快就找到了我this one。
使用JSON时,您的浏览器控制台为检查和播放数据提供了一个很好的环境。我将它粘贴到浏览器控制台并执行(在每行后按Enter键):
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
并提取您需要的内容。
请注意,上述内容仅允许您访问valueColumns
下的第一个config
数组。通过遵循相同的原则,您可以深入了解结构,并获取valueColumns
数组中sizes
对象的{{1}},如果这是您真正追求的目标。
答案 1 :(得分:0)
为了将json解析为java,有一个简单的步骤。 下面的代码段可能会对您有所帮助。
// 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));