JavaJSON返回一个数组作为值
我有一个JSON对象,比如JavaJSON返回一个数组作为值,java,arrays,json,Java,Arrays,Json,我有一个JSON对象,比如 { "endtime": 1446188340, "interval": 60, "metrics": { "heartrate": { "values": [ 88, 92, 88, 89, 86, 84,
{
"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似乎也不是正确的选择。我只想得到一系列我可以使用的双打。谢谢大家! 我认为这应该可以做到:
JSONObject main = new JSONObject(MyJsonString);
JSONArray values = main.getJSONObject("metrics")
.getJSONObject("heartrate").getJSONArray("values");
JSON经验法则:
表示'['
节点的开始JSONArray
表示'{'
JSONObject
[
开头,那么我们应该使用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;
}
publicstaticarraylistgetheartrates(字符串jsonString)抛出JSONException{
ArrayList值=新的ArrayList();
//根JSON对象。
JSONObject JSONObject=新的JSONObject(jsonString);
JSONObject metrics=JSONObject.getJSONObject(“metrics”);
JSONObject心率=metrics.getJSONObject(“心率”);
JSONArray valuesArray=心率。getJSONArray(“值”);
对于(int i=0;i
谢谢你的解决方案。我想知道你是否能帮我澄清一下。我以为JSON数组是JSON对象的数组,比如[“key1”:value,“key2”:value,“key3”:value]。但是我有一个JSON对象,其中值是数组,比如“key1”:[1,2,3]。你怎么把[1,2,3]称为JSONArray?谢谢!