我有一个函数,应该更改具有某些数组对象的Object上的某些值。
此对象是:
{"avg":{"00:00":[],"01:00":[],"02:00":[],"03:00":[],"04:00":[],"05:00":[],"06:00":[],"07:00":[],"08:00":[],"09:00":[],"10:00":[],"11:00":[],"12:00":[],"13:00":[],"14:00":[],"15:00":[],"16:00":[],"17:00":[],"18:00":[],"19:00":[],"20:00":[],"21:00":[],"22:00":[],"23:00":[]},"avg_hum":{"00:00":[],"max":{"00:00":[],"min":{"00:00":[],"max_hum":{"00:00":[],"min_hum":{"00:00":[],"beginDate":"","endDate":""}
我需要向数组中添加值(例如:{“ 00:00”:[25],...})
因此,我尝试了类似的操作(“ data_raw”是接收的对象):
ArrayNode array = mapper.createArrayNode();
array = (ArrayNode) data_raw.get("avg").get("00:00");
array.add((double) 25.11666711171468);
System.out.println("data_raw: " + data_raw.toString());
结果(“ data_raw”对象)为:
data_raw: {"avg":{"00:00":[25.11666711171468],"avg_hum":{"00:00":[25.11666711171468],"max":{"00:00":[25.11666711171468],"min":{"00:00":[25.11666711171468],"max_hum":{"00:00":[25.11666711171468],"min_hum":{"00:00":[25.11666711171468],"endDate":""}
我希望仅更改“ avg”:{“ 00:00”:[X],...},但是无论选择的“主字段”如何,所有具有“ 00:00”名称的对象都将被替换。 :“ avg”。
有人可以帮我吗?
编辑:
完成相关代码:
String[] name_db_data = {"avg","avg_hum","max","min","max_hum","min_hum"};
SimpleDateFormat hourFormatted = new SimpleDateFormat("HH:mm");
reType = reportType.detailedDailyReport;
ResultSet rs = stm.executeQuery(query); // The String "query" is a dynamic MySQL query.
while(rs.next())
{
if(reType == reportType.detailedDailyReport)
{
int count4 = 0;
Calendar c = Calendar.getInstance();
c.setTime(rs.getTime("hour"));
for(count4 = 0; count4 < name_db_data.length; count4 ++)
{
ArrayNode array_aux2 = mapper.createArrayNode();
array_aux2 = (ArrayNode) data_raw.get(name_db_data[count4]).get(hourFormatted.format(c.getTime()));
array_aux2.add(rs.getDouble(name_db_data[count4]));
}
}