Jason是一个Go语言用来处理JSON文档的开发包。Jason的强项是解析JSON而不是生成JSON。
示例代码:
root, err := jason.NewFromReader(res.Body)root.Get("name").String()root.Get("age").Number()root.Get("verified").Boolean()root.Get("education").Object()root.Get("friends").Array()//读取嵌套内容root.Get("person", "name").String()root.Get("person", "age").Number()root.Get("person", "verified").Boolean()root.Get("person", "education").Object()root.Get("person", "friends").Array()//判断数值是否存在root.Has("person", "name")root.Get("person", "name").Exists()//数值校验root.Get("name").IsString()root.Get("age").IsNumber()root.Get("verified").IsBoolean()root.Get("education").IsObject()root.Get("friends").IsArray()root.Get("friends").IsNull()//循环for _, friend := range person.Get("friends").Array() { name := friend.Get("name").String() age := friend.Get("age").Number()}完整例子:
package mainimport ( "github.com/antonholmquist/jason" "log")func main() { exampleJSON := `{ "name": "Walter White", "age": 51, "children": [ "junior", "holly" ], "other": { "occupation": "chemist", "years": 23 } }j, _ := jason.NewObjectFromBytes([]byte(exampleJSON)) log.Println("name:", j.Get("name").String()) log.Println("age:", j.Get("age").Number()) log.Println("occupation:", j.Get("other", "occupation").String()) log.Println("years:", j.Get("other", "years").Number()) for i, child := range j.Get("children").Array() { log.Printf("child %d: %s", i, child.String()) }}
评论