gojson is used in Go language programs to parse JSON files


gojson is an golang package that quickly parses json data. You can use it to quickly look up json data The installation

 go get github.com/widuu/gojson

Use profile

structure

type Js struct {
    data interface{}
}

(1) func Json(data) *Js data is of type string, initializes the Js structure, parses json and return Js.data

json := `{"from":"en","to":"zh"}`
c1 := gojson.Json(json) //&{map[from:en to:zh]}

(2) func (*Js) Get() *js gets a value in the simple json, finds it recursively, return Js.data

json := `{"from":"en","to":"zh","trans_result":{"src":"today","dst":"\u4eca\u5929"},"result":["src","today","dst","\u4eca\u5929"]}`
c2 := gojson.Json(json).Get("trans_result").Get("dst")
fmt.Println(c2) //&{ Today, }
c2 := gojson.Json(json).Get("from")
fmt.Println(c2) //&{en}

(3) func (*Js)Tostring()string converts a single piece of data to string type, and returns the data to string because string type is better than all other types

c2 := gojson.Json(json).Get("from").Tostring()
fmt.Println(c2) //en

(4) func (j *Js) Getpath(args… string) *Js gets a value by entering multiple parameters of string. json data 1 must be recursive

c4 := gojson.Json(json).Getpath("trans_result", "src").Tostring()
fmt.Println(c4)  //today

(5) func (j *Js) Arrayindex(i int) string gets the value of the array structure in Json data and returns the corresponding value according to the input num, only the value in [] in {” result ”:[” src”, “today”, “dst”, “\u4eca\u5929”]} can be processed

json := `{"from":"en","to":"zh","trans_result":{"src":"today","dst":"\u4eca\u5929"},"result":["src","today","dst","\u4eca\u5929"]}`
c7 := gojson.Json(json).Get("result").Arrayindex(1)
fmt.Println(c7) //src

(6) func (j * Js) Getkey (key string, i int) * Js this function is for the repeated data in the data, value, use js. data must be [] interface {} type, this is baidu translation return js may be used

json1 := `{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"},{"src":"tomorrow","dst":"\u660e\u5929"}]}`
c8 := gojson.Json(json1).Get("trans_result").Getkey("src", 1).Tostring()
fmt.Println(c8) // It returns trans_result The first 1 In the group src today

(7) func (j *Js) ToArray() (k, d []string) converts json data into key []string [] value []string{} string{} 11, which can only be used up to level 2, not to multiple levels

c9k, c9v := gojson.Json(json1).Get("trans_result").ToArray()
fmt.Println(c9k, c9v) //[src dst src dst] [today  Today,  tomorrow  Tomorrow, ]
c3k, c3v := gojson.Json(json).Getindex(1).ToArray()
fmt.Println(c3k, c3v) //    [from] [en]

(8) func (j *Js) Getindex(i int) *Js returns the data in json according to i, which can be searched step by step

json1 := `{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"},{"src":"tomorrow","dst":"\u660e\u5929"}]}`
c10 := gojson.Json(json1).Getindex(3).Getindex(1).Getindex(1).Get("src").Tostring()
fmt.Println(c10) //today

(9) func (j *Js) StringtoArray() []string returns the data corresponding to result in json :[” src ”, “today”, “dst”, ”\ u4u5929”]} data as slice in []string

c11 := gojson.Json(json).Get("result").StringtoArray()
fmt.Println(c11) //[src today dst  Today, ]

(10) func (j *Js) Type() for print test, print data type

json := `{"from":"en","to":"zh"}`
c1 := gojson.Json(json) //&{map[from:en to:zh]}

0