Go語言JSON庫:Jason
Jason目標是成為Go語言開發中慣用的JSON庫。受其它庫的啟發并對一些常見的使用進行了改進,它當前專注于讀取JSON數據,但不創建JSON。
數據類型
下面golang值用于JSON數據類型。及與原始數據類型的對應關系:
bool
, for JSON booleansfloat64
, for JSON numbersstring
, for JSON strings[]*Jason
, for JSON arraysmap[string]*Jason
, for JSON objectsnil
for JSON null
示例代碼:
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.NewFromString(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()) } }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!