package main
import (
"encoding/json"
"fmt"
"github.com/yalp/jsonpath"
)
func main() {
raw := []byte(`{
"ContractId": "234234",
"ContractType": "Contract",
"Terms": [
"Goole",
"BaiDu"
],
"Timestamp": 1123123,
"datatype": "Contract"
}`)
// 定义一个空接口类型data,用于接收反序列化后的json数据
var data interface{}
json.Unmarshal(raw, &data)
out, err := jsonpath.Read(data, "$.datatype")
if err != nil {
panic(err)
}
fmt.Print(out)
}
打印的结果为Contract
我们看一下Read函数的参数和返回值:
func Read(value interface{}, path string) (interface{}, error)
它的作用是从解码的 JSON 数组或对象([]interface{} 或 map[string]interface{})读取路径并返回相应的值或错误。返回的值类型取决于请求的路径和JSON值。
参考文档:gojsonpath官方文档