Searcher
Searcher模块为golang提供了便捷的json字段访问, 此模块的接口将尽可能的简单易用
快速开始
安装
$ go get github.com/markity/searcher
用法
给定的json数据
var jsonString = `
{
"name":"Markity",
"age":"16",
"friends":[
{
"name":"Jack",
"age":17
},
{
"name":"Mary",
"age":18,
"email":"3402002560@qq.com"
}
],
"details":{
"interests":["golang","python"]
}
}
`
使用json数据创建一个searcher
import "github.com/markity/searcher"
// 若json数据不合法, 则error不为nil
s, err := searcher.New([]byte(jsonString))
if err != nil {
fmt.Printf("invalid json data: %v", err)
return
}
获取字段值
// 获取一个字段. 参数的类型必须为int或者string
result := s.Query("friends", 0, "name")
// 检查字段是否存在
if !result.Exists() {
fmt.Println("the result does not exists")
return
}
// 你可以判断字段的类型. 类型包括 TypeNumber, TypeBool, TypeString, TypeArray, TypeObject and TypeNull
if result.Type != searcher.TypeString {
fmt.Println("wrong type of the field")
return
}
// 你可以通过GetXXX方法获取字段真实值(GetInt64, GetUint64, GetFloat64, GetBool, GetString, GetObject, GetArray, GetValue)
// 在使用GetXXX方法前, 必须判断它的类型(使用了错误的"Get方法"将导致程序直接panic)
// 举例, 若result.Type是TypeNumber, 你可以使用 GetInt64, GetUint64 and GetFloat64
fmt.Printf("My first friend's name is %s\n", result.GetString())