【发布时间】:2015-05-13 12:20:45
【问题描述】:
我正在使用 Golang 和 JSON 尝试使用从 Graphite API 提取的数据进行一些计算。
为简单起见,Graphite 发送的数据的一个 sn-p 为:
[
{
"target": "server1.loadavg.1min",
"datapoints": [
[
0.16,
1422770850
],
[
0.16,
1422770880
],
[
null,
1422771120
]
]
},
{
"target": "server2.loadavg.1min",
"datapoints": [
[
0.19,
1422770850
],
[
null,
1422771390
],
[
0.14,
1422771420
]
]
}
]
我一直在阅读the go json tutorial,了解如何使用通用接口{}处理 JSON 任意数据,但我在流程的某些方面遇到了困难。
我试图定义一个结构来保存这些数据,读取文件内容并将其解组为这个结构:
type Graphite struct {
Metric struct {
Target string `json:"target"`
Datapoints [][]float64 `json:"datapoints"`
}
}
var results []Graphite
err = json.Unmarshal(d, &r)
if err != nil {
panic(err)
}
fmt.Printf("%v\n", r)
但结果是:
[{{ []}} {{ []}}]
我当然可以使用通用接口{},但我想知道我在这里缺少什么。
你能帮帮我吗?
谢谢!
【问题讨论】:
-
如果您不反对使用第三方解决方案,This 库非常好。
-
谢谢,这似乎是个不错的选择!