Go 的 JSON 开发包 Jason
- 授权协议: MIT
- 开发语言: Google Go
- 操作系统: 跨平台
- 软件首页: https://github.com/antonholmquist/jason
- 软件文档: https://godoc.org/github.com/antonholmquist/jason
软件介绍
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 main
import (
"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())
}
}
Visual Thinking
Colin Ware / Morgan Kaufmann / 2008-4-18 / USD 49.95
Increasingly, designers need to present information in ways that aid their audiences thinking process. Fortunately, results from the relatively new science of human visual perception provide valuable ......一起来看看 《Visual Thinking》 这本书的介绍吧!
