【发布时间】:2015-04-28 08:48:41
【问题描述】:
这是我从服务器解析时的 json:
{
"main": [
{
"id": "12345"
}
],
"parameter": [
{
"temp": "30.00",
"acc": "3.00",
"moisture": "200.00",
"battery": "98.00",
"date": "2015-04-13",
"time": "14:51:05"
},
{
"temp": "32.00",
"acc": "2.50",
"moisture": "190.00",
"battery": "80.00",
"date": "2015-04-13",
"time": "14:53:21"
},
{
"temp": "27.00",
"acc": "5.00",
"moisture": "200.00",
"battery": "60.00",
"date": "2015-04-13",
"time": "15:06:04"
},
{
"temp": "21.00",
"acc": "3.00",
"moisture": "160.00",
"battery": "60.00",
"date": "2015-04-13",
"time": "15:07:13"
},
{
"temp": "30.00",
"acc": "4.50",
"moisture": "200.00",
"battery": "65.00",
"date": "2015-04-13",
"time": "10:18:11"
}
]
}
我用一种方法将时间从格式“hh:mm:ss”转换为“hh”。
public static int convertTime(String time) {
Date formatTime = null;
try {
formatTime = new SimpleDateFormat("hh:mm:ss").parse(time);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
@SuppressWarnings("deprecation")
int hour = formatTime.getHours();
return hour;
}
然后我想计算每次的平均温度。例如,当我转换为“hh”时,时间 =“14”有 2 个温度值是“30 和 32”。我如何计算平均温度?请帮我。
【问题讨论】:
-
只需选择与您的时间范围相匹配的值,将这些值相加并除以所选元素的数量。就是这样。
-
比如你有两个温度值30和32,那么
avarageTemp = (30+32)/2; -
我认为 OP 想知道如何从 JSON 和他的方法到达那里。
-
这只是一个例子,如果数据很大,那你怎么办? @sebhaub,巴图汉
-
最好的方法是使用哈希映射,用 24 个键表示一天 24 小时,然后遍历您的 json 数据,使用您编写的实用程序方法,并在读取时开始平均和存储值ahed 在循环中。