日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

golang中的sjson

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。