Golang之gjson
生活随笔
收集整理的這篇文章主要介紹了
Golang之gjson
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
gjson主要用于從string和[]byte里取json數(shù)據(jù)。
對(duì)于interfacele{}類型,要先強(qiáng)制轉(zhuǎn)換為[]byte或string再用gjson,其實(shí)單層json下不如直接強(qiáng)轉(zhuǎn)為map,多層考慮用gjson。
gjson的path寫法 ?mirror.region.regions.#.cluster_name把regions切片里的cluster_name字段取出來組成一個(gè)切片。
import "fmt" import "github.com/tidwall/gjson" const json = `{"name":[{"first":"Janet","last":"Prichard"}, {"abc": 1, "e" : 2}],"age":47}`var jsonInterface interface {}func main() {// 1、把string轉(zhuǎn)result,再取數(shù)據(jù)gjson.Parse(json).Get("name")// 2、把[]byte轉(zhuǎn)result,再取數(shù)據(jù)gjson.ParseBytes([]byte(json)).Get("name")// 3、從string格式的json直接取數(shù)據(jù)v := gjson.Get(json, "name")// 4、interface{}要先強(qiáng)制轉(zhuǎn)換為[]byte或string,再用gjson的三種方法(單層不如直接強(qiáng)轉(zhuǎn)為map,多層考慮用gjson)gjson.Parse(jsonInterface.(string)).Get("name")gjson.ParseBytes(jsonInterface.([]byte)).Get("name")gjson.Get(jsonInterface.(string),"name")if v.String() == "" {fmt.Println("nil")} else {fmt.Println(v.String())fmt.Println(v.Type)} }總結(jié)
以上是生活随笔為你收集整理的Golang之gjson的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员看《长安十二时辰》的正确姿势~!
- 下一篇: Golang之零值