该第三方包采用go语言开发:https://github.com/tidwall/sjson
先来看看官方的案例:
package main import "github.com/tidwall/sjson" const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}` func main() { value, _ := sjson.Set(json, "name.last", "Anderson") println(value) }
输出:
{"name":{"first":"Janet","last":"Anderson"},"age":47}
可以看到,直接把last对应的值搞成了 Anderson
如果是多维呢?按照官方的示例,自己做了一个简单的demo:
const json = `{ "demo": [ { "name": "name", "title": "title", "info": {"key":"val"}, "url": "http://goo.gl" }, { "name": "name_2", "title": "title_2", "info": {"key_2":"val_2"}, "url": "https://google.com" } ] }` value, _ := sjson.Set(json, "demo.1.url", "http://baidu.com") println(value)
输出
{ "demo": [{ "name": "name", "title": "title", "info": { "key": "val" }, "url": "http://goo.gl" }, { "name": "name_2", "title": "title_2", "info": { "key_2": "val_2" }, "url": "http://baidu.com" } ] }
可以看出demo下的第二个url参数已经发生改变了!
如果需要值全部改变可以用
sjson.Set(json, "demo.#.url", "xxx")