【问题标题】:How to get value of key in JSON object [duplicate]如何在 JSON 对象中获取键的值 [重复]
【发布时间】: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 的未定义方法

【问题讨论】:

    标签: java json


    【解决方案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); }
    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    相关资源
    最近更新 更多