在数组中过滤数据
基于下面的 JSON 数据:
d := json.D(`
{
"records": [
{
"key": "k1",
"value": "v1"
},
{
"key": "k2",
"value": "v2"
}
]
}
`)
如果想要获取键值为 k2
的数据项并且读取 value
字段的值,可以这样做:
d.Filter("records", func(data *json.Data) bool {
return data.GetString("key") == "k2"
}).GetString("records[0].value")
在上面的示例中,数组的数据在过滤之后只剩下一条数据符合条件。 所以可以用 records[0]
定位到这条数据,然后用 .value
作为路径来读取 value 字段的数值。