gpt4 book ai didi

Java JSON 返回一个数组作为值

转载 作者:行者123 更新时间:2023-11-30 03:11:36 29 4
gpt4 key购买 nike

我有一个 JSON 对象,例如

{
"endtime": 1446188340,
"interval": 60,
"metrics": {
"heartrate": {
"values": [
88,
92,
88,
89,
86,
84,
82,
86,
97,
77,
81,
87,
83,
101,
96,
97,
123,
123,
127,
127,
127,
130,
134,
133,
129,
126,
121,
137,
141,
149,
144,
120,
104,
102,
100,
107,
116,
107,
98,
97,
115,
107,
106,
98
]
}
},
"starttime": 1446102000,
"timezone_history": [
{
"offset": -7,
"start": 1446102000,
"timezone": "America\/Los_Angeles"
}
]
}

如何获取“值”下的心率数据数组?

如果我打印:

JSONObject a = new JSONObject(obj.getJSONObject("metrics").getJSONObject("heartrate"));

我刚刚得到:

{}

而且 JSONArray 似乎也不是正确的使用方式。我只想获得一组可以使用的 double 。谢谢!

最佳答案

JSON 经验法则:

<小时/>
  • '[' 表示 JSONArray 节点的开始

  • '{' 表示 JSONObject

如果您的 JSON 节点以 [ 开头,那么我们应该使用 getJSONArray() 方法。而如果节点以 { 开头,那么我们应该使用 getJSONObject() 方法。

这是获取双值的代码

   public static ArrayList<Double> getHeartRates(String jsonString) throws JSONException {
ArrayList<Double> values = new ArrayList<>();
// root JSON Object.
JSONObject jsonObject = new JSONObject(jsonString);

JSONObject metrics = jsonObject.getJSONObject("metrics");
JSONObject heartRate = metrics.getJSONObject("heartrate");
JSONArray valuesArray = heartRate.getJSONArray("values");

for (int i = 0; i < valuesArray.length(); i++) {
values.add(valuesArray.getDouble(i));
}

return values;
}

关于Java JSON 返回一个数组作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33511392/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com