【问题标题】:Fetch data from JSON file, save as objects and fetch data with a key-value从 JSON 文件中获取数据,保存为对象并使用键值获取数据
【发布时间】:2017-03-25 23:02:43
【问题描述】:

我有一个 JSON 文件

{
    "measurements": [
      {
        "time": "100416",
        "temp": "7.64",
      },
      {
        "time": "110416",
        "temp": " 7.76 ",
      },
      {
        "time": "120416",
        "temp": " 7.86 ",
      }
    ]
}

我需要将值保存为键值为“时间”的类对象(或哈希图)。然后在输入“时间”例如: 120416 它将打印该时间的温度。我正在使用 Netbeans。

这是我目前为止的地方。我可以打印一个数组:

public class Weathers {
    private static final String filePath = "C:\\measurements.json";

    public static void main(String[] args) {
        try {

            FileReader reader = new FileReader(filePath);
            JSONParser jsonParser = new JSONParser();
            JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);

            JSONArray JArray = (JSONArray) jsonObject.get("measurements");
            for (int i =0;i <JArray.size();i++)
            {
            System.out.println(JArray.get(i));
            }

        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (ParseException ex) {
            ex.printStackTrace();
        } catch (NullPointerException ex) {
            ex.printStackTrace();
        }
    }
}

【问题讨论】:

    标签: java arrays json key-value json-simple


    【解决方案1】:
     Map<Integer, Double> map = new HashMap<Integer, Double>();
            for (int i =0;i <JArray.size();i++)
            {
                map.put(JArray.get(i).getInt("time"),JArray.get(i).getDouble("temp"));
                 System.out.println(JArray.get(i));
            }
    

    【讨论】:

    • 从哪里获得能够导入 getInt 和 getDouble 的 .jar 文件?
    • 您使用的是哪个 json 库?几乎所有的 json 库都有这种支持。例如,我正在使用 org.json.simple.JSONObject,它的用法非常简单,可以从 json 对象获取 int、double。
    • 我有 json-simple.jar。其他一切正常,但没有得到 int 或 double。
    • 写jsonArray.getJSONObject(i).getInt("key")
    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    相关资源
    最近更新 更多