gjson快速獲取 JSON 文檔
gjson 是一個 Go 開發(fā)包,提供了非??焖俸秃唵蔚姆绞絹慝@得一個 JSON 文檔的值。此文庫的存在是為 BuntDB 項目提供高效的 JSON 索引。
安裝:
開始使用 GJSON,安裝 Go ,并運行go get:
$ go get -u github.com/tidwall/gjson
此操作可恢復文庫。
性能:
與 encoding/json, ffjson, EasyJSON, 和 jsonparser 并列的 GJSON 基準點。
BenchmarkGJSONGet-8 15000000 333 ns/op 0 B/op 0 allocs/op BenchmarkGJSONUnmarshalMap-8 900000 4188 ns/op 1920 B/op 26 allocs/op BenchmarkJSONUnmarshalMap-8 600000 8908 ns/op 3048 B/op 69 allocs/op BenchmarkJSONUnmarshalStruct-8 600000 9026 ns/op 1832 B/op 69 allocs/op BenchmarkJSONDecoder-8 300000 14339 ns/op 4224 B/op 184 allocs/op BenchmarkFFJSONLexer-8 1500000 3156 ns/op 896 B/op 8 allocs/op BenchmarkEasyJSONLexer-8 3000000 938 ns/op 613 B/op 6 allocs/op BenchmarkJSONParserGet-8 3000000 442 ns/op 21 B/op 0 allocs/op
JSON 文檔使用:
{ "widget": { "debug": "on", "window": { "title": "Sample Konfabulator Widget", "name": "main_window", "width": 500, "height": 500
}, "image": {
"src": "Images/Sun.png", "hOffset": 250, "vOffset": 250, "alignment": "center"
}, "text": { "data": "Click Here", "size": 36, "": "bold", "vOffset": 100, "alignment": "center", "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
}
}
每個操作都是通過下面的搜索路徑之一回轉:
widget.window.name widget.image.hOffset widget.text.onMouseU
評論
圖片
表情
