如何在 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.png example2.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 对象中获取键的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中完全获取带有重复键的JSON

如何在 JSON 中查找键的值

如何获取前端传过来的json对象?

NodeJS通过键的值在数组中查找对象[重复]

如何从 JSON 对象中获取特定的键值

如何在 JSON 中查找对象键的索引