golang中的sjson
生活随笔
收集整理的這篇文章主要介紹了
golang中的sjson
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
安裝
go get -u github.com/tidwall/sjson設(shè)置值
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}路徑語(yǔ)法
路徑是由點(diǎn)分隔的一系列鍵。點(diǎn)和冒號(hào)字符可以轉(zhuǎn)義\
{"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鍵可用于將值附加到現(xiàn)有數(shù)組:
"children.-1" >> appends a new value to the end of the children array通常,數(shù)字鍵用于修改數(shù)組,但可以使用冒號(hào)字符強(qiáng)制數(shù)字對(duì)象鍵:
{"users":{"2313":{"name":"Sara"},"7839":{"name":"Andy"}} }冒號(hào)路徑
"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"}}當(dāng)一個(gè)類型無(wú)法識(shí)別時(shí),SJSON將回退到encoding/jsonMarshaller
從空文檔設(shè)置一個(gè)值
value, _ := sjson.Set("", "name", "Tom") println(value)// Output: // {"name":"Tom"}從空文檔設(shè)置嵌套值
value, _ := sjson.Set("", "name.last", "Anderson") println(value)// Output: // {"name":{"last":"Anderson"}}設(shè)置新值
value, _ := sjson.Set(`{"name":{"last":"Anderson"}}`, "name.first", "Sara") println(value)// Output: // {"name":{"first":"Sara","last":"Anderson"}}更新現(xiàn)有值
value, _ := sjson.Set(`{"name":{"last":"Anderson"}}`, "name.last", "Smith") println(value)// Output: // {"name":{"last":"Smith"}}設(shè)置一個(gè)新的數(shù)組值
value, _ := sjson.Set(`{"friends":["Andy","Carol"]}`, "friends.2", "Sara") println(value)// Output: // {"friends":["Andy","Carol","Sara"]使用-1路徑中的鍵附加數(shù)組值
value, _ := sjson.Set(`{"friends":["Andy","Carol"]}`, "friends.-1", "Sara") println(value)// Output: // {"friends":["Andy","Carol","Sara"]附加一個(gè)超過(guò)結(jié)尾的數(shù)組值
value, _ := sjson.Set(`{"friends":["Andy","Carol"]}`, "friends.4", "Sara") println(value)// Output: // {"friends":["Andy","Carol",null,null,"Sara"]刪除一個(gè)值
value, _ := sjson.Delete(`{"name":{"first":"Sara","last":"Anderson"}}`, "name.first") println(value)// Output: // {"name":{"last":"Anderson"}}刪除一個(gè)數(shù)組值
value, _ := sjson.Delete(`{"friends":["Andy","Carol"]}`, "friends.1") println(value)// Output: // {"friends":["Andy"]}刪除最后一個(gè)數(shù)組值
value, _ := sjson.Delete(`{"friends":["Andy","Carol"]}`, "friends.-1") println(value)// Output: // {"friends":["Andy"]}總結(jié)
以上是生活随笔為你收集整理的golang中的sjson的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: golang中的collection
- 下一篇: golang中的redigo