我在 go 中有一个数据结构:
type APIMain struct {
CodeConv string `json:"codeConv"`
Start time.Time `json:"start"`
End time.Time `json:"end"`
Details []struct {
IDPrm string `json:"idPrm"`
Keys []struct {
Timestamp time.Time `json:"timestamp"`
Value float64 `json:"value"`
} `json:"keys"`
} `json:"details"`
}
我需要将其转换为:
type DataGroupedByTS struct {
CodeConv string `json:"codeConv"`
Start time.Time `json:"start"`
End time.Time `json:"end"`
Details []struct {
Timestamp time.Time `json:"timestamp"`
Keys []struct {
IDPrm string `json:"idPrm"`
Value float64 `json:"value"`
} `json:"keys"`
} `json:"details"`
}
我得到:
panic: runtime error: index out of range
这是我的方法,但它在循环的第一行失败:
func groupByTimestamp(apiMain datacheck.APIMain) DataGroupedByTS {
var dataGrouped DataGroupedByTS
dataGrouped.CodeConv = apiMain.CodeConv
dataGrouped.Start = apiMain.Start
dataGrouped.Start = apiMain.Start
dataGrouped.End = apiMain.End
var iDetail = 0
var iKey = 0
for _, detail := range apiMain.Details {
for _, key := range detail.Keys {
dataGrouped.Details[iDetail].Timestamp = key.Timestamp // <-- failing here
dataGrouped.Details[iDetail].Keys[iKey].IDPrm = detail.IDPrm
dataGrouped.Details[iDetail].Keys[iKey].Value = key.Value
iKey++
}
iDetail++
}
return dataGrouped
}
基本上,数据最初按 分组IDPrm,我需要按时间戳对其进行分组。
我该怎么做呢?有没有帮手可以帮忙做这件事?
MM们
宝慕林4294392
相关分类