从JSON文件中获取数据,另存为对象并使用键值获取数据

时间:2017-03-25 10:46:48

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

我有一个JSON文件

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

我需要将值保存为类对象(或Hashmap),键值为" time"。然后在输入" time"例如: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();
        }
    }
}

1 个答案:

答案 0 :(得分: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));
        }