层级访问
gjson
支持对数据内容进行层级检索访问,层级分隔符号默认为” .
“。该特性使得开发者可以灵活访 问未知的数据结构内容变得非常简便。
示例1,基本使用
func main() {
data :=
`{
"users" : {
"count" : 2,
"list" : [
{"name" : "Ming", "score" : 60},
{"name" : "John", "score" : 99.5}
]
}
}`
if j, err := gjson.DecodeToJson(data); err != nil {
panic(err)
} else {
fmt.Println("John Score:", j.Get("users.list.1.score"))
}
// Output:
// John Score: 99.5
}
可以看到, gjson.Json
对象可以通过非常灵活的层级筛选功能( j.GetFloat32("users.list.1.score")
)检索到对应的变量信息。
示例2,自定义层级分隔符号
func main() {
data :=
`{
"users" : {
"count" : 2,
"list" : [
{"name" : "Ming", "score" : 60},
{"name" : "John", "score" : 99.5}
]
}
}`
if j, err := gjson.DecodeToJson(data); err != nil {
panic(err)
} else {
j.SetSplitChar('#')
fmt.Println("John Score:", j.Get("users#list#1#score"))
}
// Output:
// John Score: 99.5
}
可以看到,我们可以通过 SetSplitChar
方法设置我们自定义的分隔符号。