golang中的sjson
生活随笔
收集整理的這篇文章主要介紹了
golang中的sjson
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
安裝
go get -u github.com/tidwall/sjson設置值
import "github.com/tidwall/sjson"const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}`func main() {//把name.last的值給改變了value, _ := sjson.Set(json, "name.last", "Anderson")println(value) }輸出
{"name":{"first":"Janet","last":"Anderson"},"age":47}路徑語法
路徑是由點分隔的一系列鍵。點和冒號字符可以轉義\
{"name": {"first": "Tom", "last": "Anderson"},"age":37,"children": ["Sara","Alex","Jack"],"fav.movie": "Deer Hunter","friends": [{"first": "James", "last": "Murphy"},{"first": "Roger", "last": "Craig"}] } "name.last" >> "Anderson" "age" >> 37 "children.1" >> "Alex" "friends.1.last" >> "Craig"用-1鍵可用于將值附加到現有數組:
"children.-1" >> appends a new value to the end of the children array通常,數字鍵用于修改數組,但可以使用冒號字符強制數字對象鍵:
{"users":{"2313":{"name":"Sara"},"7839":{"name":"Andy"}} }冒號路徑
"users.:2313.name" >> "Sara"支持的類型
sjson.Set(`{"key":true}`, "key", nil) sjson.Set(`{"key":true}`, "key", false) sjson.Set(`{"key":true}`, "key", 1) sjson.Set(`{"key":true}`, "key", 10.5) sjson.Set(`{"key":true}`, "key", "hello") sjson.Set(`{"key":true}`, "key", map[string]interface{}{"hello":"world"})輸出
{"key":null} {"key":false} {"key":1} {"key":10.5} {"key":"hello"} {"key":{"hello":"world"}}當一個類型無法識別時,SJSON將回退到encoding/jsonMarshaller
從空文檔設置一個值
value, _ := sjson.Set("", "name", "Tom") println(value)// Output: // {"name":"Tom"}從空文檔設置嵌套值
value, _ := sjson.Set("", "name.last", "Anderson") println(value)// Output: // {"name":{"last":"Anderson"}}設置新值
value, _ := sjson.Set(`{"name":{"last":"Anderson"}}`, "name.first", "Sara") println(value)// Output: // {"name":{"first":"Sara","last":"Anderson"}}更新現有值
value, _ := sjson.Set(`{"name":{"last":"Anderson"}}`, "name.last", "Smith") println(value)// Output: // {"name":{"last":"Smith"}}設置一個新的數組值
value, _ := sjson.Set(`{"friends":["Andy","Carol"]}`, "friends.2", "Sara") println(value)// Output: // {"friends":["Andy","Carol","Sara"]使用-1路徑中的鍵附加數組值
value, _ := sjson.Set(`{"friends":["Andy","Carol"]}`, "friends.-1", "Sara") println(value)// Output: // {"friends":["Andy","Carol","Sara"]附加一個超過結尾的數組值
value, _ := sjson.Set(`{"friends":["Andy","Carol"]}`, "friends.4", "Sara") println(value)// Output: // {"friends":["Andy","Carol",null,null,"Sara"]刪除一個值
value, _ := sjson.Delete(`{"name":{"first":"Sara","last":"Anderson"}}`, "name.first") println(value)// Output: // {"name":{"last":"Anderson"}}刪除一個數組值
value, _ := sjson.Delete(`{"friends":["Andy","Carol"]}`, "friends.1") println(value)// Output: // {"friends":["Andy"]}刪除最后一個數組值
value, _ := sjson.Delete(`{"friends":["Andy","Carol"]}`, "friends.-1") println(value)// Output: // {"friends":["Andy"]}總結
以上是生活随笔為你收集整理的golang中的sjson的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang中的collection
- 下一篇: golang中的redigo