如何在 JSON 对象中获取键的值 [重复]
Posted
技术标签:
【中文标题】如何在 JSON 对象中获取键的值 [重复]【英文标题】:How to get value of key in JSON object [duplicate] 【发布时间】:2018-02-05 10:01:09 【问题描述】:我有一个 json 文件,它会经常更新,一个例子就是这样;
"Meta Data":
"1. Information": "Intraday (60min) prices and volumes",
"2. Symbol": "ASX:NAB",
"3. Last Refreshed": "2017-08-28 02:00:00",
"4. Interval": "60min",
"5. Output Size": "Compact",
"6. Time Zone": "US/Eastern"
,
"Time Series (60min)":
"2017-08-28 02:00:00":
"1. open": "30.3600",
"2. high": "30.4400",
"3. low": "30.3600",
"4. close": "30.4000",
"5. volume": "348096"
,
"2017-08-28 01:00:00":
"1. open": "30.3800",
"2. high": "30.4100",
"3. low": "30.3500",
"4. close": "30.3500",
"5. volume": "251213"
我想知道而不是打电话
JSONObject example= (JSONObject) example2.get("2017-08-28 02:00:00")
每次我想从对象中获取数据时,有没有办法在循环中执行此操作?动态改变.get的值?
我知道如何从对象中检索数据,我只是不知道如何在不直接将其名称放入 .get 的情况下获取对象的调用。之所以会出现问题,是因为会有数百个对象的格式为“yyyy-MM-dd hh:mm:ss”
编辑: 我在以下代码中添加了
Iterator<String> keys = example2.keys();
然而 eclipse 说这是 JSONObject 的未定义方法
【问题讨论】:
【参考方案1】:您可以获取密钥,然后循环遍历它们,如下所示:
Iterator<String> keys = jsonObject.keys();
String key = keys.next();
String value = json.optString(key);
【讨论】:
当我这样做时,它下面有一条红线?我不知道如何解决它 - i.imgur.com/rPID4DB.pngexample2.keys()
不起作用?什么是 example2?
@peter 你能把你的代码贴在这里吗?
pastebin.com/C5K5ZjCU - 它说键不是 JSONObject @UrvashiSoni 类型的定义方法
jsonObject.getSet()
将为您提供 JSON 中的一组键,您可以通过这些键对每个循环进行迭代。 for (Object key : obj.keySet()) String kryStr = (String) key; Object keyValue = obj.get(kryStr); System.out.println(kryStr + " : " + keyValue);
以上是关于如何在 JSON 对象中获取键的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章