Go json 库 json-iterator


高效json库.png

直接替换 json.Marshal 替为 jsoniter.Marshal

type ColorGroup struct {
    ID     int
    Name   string
    Colors []string
}
group := ColorGroup{
    ID:     1,
    Name:   "Reds",
    Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},
}
b, err := jsoniter.Marshal(group)

默认情况下,jsoniter 不会像标准库文件那样对映射键进行排序。如果你想100%的兼容性,像这样使用它。

m := map[string]interface{}{
    "3": 3,
    "1": 1,
    "2": 2,
}
json := jsoniter.ConfigCompatibleWithStandardLibrary
b, err := json.Marshal(m)

解析 json

val := []byte(`{"ID":1,"Name":"Reds","Colors":["Crimson","Red","Ruby","Maroon"]}`)
jsoniter.Get(val, "Colors", 0).ToString()

比分析 map[string]interface{} 更快,并且更容易读取数据。

分享:

评论