GoFasion:一個輕量級的具備鏈式調用風格的JSON資料解析庫
來源:互聯網
上載者:User
Gofasion是一個方便開發過程中介面JSON資料解析的輕量級解析庫,其最大的特點在於支援鏈式調用,也就是說不必預先定義好資料的結構就可以直接擷取到目標鍵名和索引值。### 開源[https://github.com/Anderson-Lu/gofasion](https://github.com/Anderson-Lu/gofasion)### 安裝```shellgo get github.com/Anderson-Lu/fasion/gofasion```### 快速開始```shellpackage mainimport ("github.com/Anderson-Lu/fasion/gofasion""fmt")//規則資料var testJson = `{"name":"foo","value":1,"second_level": {"name":2},"second_array":[1,2,3,4,5,6,7],"bool": true,"value64":1234567890}`//不規則資料var testJson2 = ` [ 1,2,"helloword",{"name":"demo"} ] `func main() {fsion := gofasion.NewFasion(testJson) //輸出 "foo"fmt.Println(fsion.Get("name").ValueStr()) //輸出 1 fmt.Println(fsion.Get("value").ValueInt()) //輸出 {\"name\":\"foo\",\"value\":1...} fmt.Println(fsion.Json())i32 := fsion.Get("value").ValueInt32()fmt.Println(i32)i64 := fsion.Get("value64").ValueInt64()fmt.Println(i64)second_fson := fsion.Get("second_level")fmt.Println(second_fson.Get("name").ValueStr()) // 數組資料的遍曆second_array := fsion.Get("second_array").Array()for _, v := range second_array {fmt.Println(v.ValueInt())}boolVal := fsion.Get("bool").ValueStr()fmt.Println(boolVal) //不規則資料的解析fsion2 := gofasion.NewFasion(testJson2)elems := fsion2.Array()fmt.Println(elems[0].ValueInt())fmt.Println(elems[1].ValueInt())fmt.Println(elems[2].ValueStr())fmt.Println(elems[3].Json()) //傳統結構體解析var iter struct {Name string `json:"name"`Value int `json:"value"`}fsion.Value(&iter)fmt.Println(iter.Name)fmt.Println(iter.Value)}```### 版本`v1` 基礎版本,提供常用的準系統### 貢獻歡迎大家提出寶貴issue,也可以提交合并請求,希望能做一款讓所有golang開發人員收益的開源庫。### 許可MIT Licence97 次點擊 ∙ 1 贊