分享
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
github地址 https://github.com/hljdxjiang/gojson
代码使用示例
package main
import (
"fmt"
"github.com/hljdxjiang/gojson"
)
func main() {
JsonObjectTest()
JsonArrayTest()
}
func JsonObjectTest() {
jsonString := `{"a1":"a1"}`
jo, err := gojson.JsonObject(jsonString)
if err != nil {
fmt.Println(err)
}
jo.SetKey("a2", "a2")
fmt.Println(jo.Encode()) //{"a1":"a1","a2":"a2"}
//update a1.value
jo.SetKey("a1", "a3")
fmt.Println(jo.Encode()) //{"a1":"a3","a2":"a2"}
//new a json without item
njo := gojson.NewJsonObject()
njo.SetKey("ad1", "ad1") //{"ad1":"ad1"}
fmt.Println(njo.Encode())
//add another JsonObject
njo.AppendObject(*jo)
fmt.Println(njo.Encode()) //{"ad1":"ad1","a1":"a3","a2":"a2"}
njo.SetKey("addJson", *jo)
fmt.Println(njo.Encode()) //{"ad1":"ad1","a1":"a3","a2":"a2","addJson":{"a1":"a3","a2":"a2"}}
fmt.Println(njo.GetValueByIndex(1).AsString("")) //a2
for _, val := range njo.GetKeys() {
fmt.Println(njo.GetValue(val).AsString(""))
}
fmt.Println(jo.GetIndex("a2"))
fmt.Println(jo.GetValueByIndex(1).AsString())
}
func JsonArrayTest() {
jsonarrString := `["aa","bb"]`
ja, err := gojson.JsonArray(jsonarrString)
if err != nil {
fmt.Println(err)
}
ja.AddItem("cc")
jsonString := `{"a1":"a1"}`
jo, err := gojson.JsonObject(jsonString)
if err != nil {
fmt.Println(err)
}
ja.AddItem(*jo)
fmt.Println(ja.Encode()) //["aa","bb","cc",{"a1":"a1"}]
nja := gojson.NewJsonArray()
nja.AddItem("ff")
nja.Append(*ja)
fmt.Println(nja.Encode()) //{"ad1":"ad1","a1":"a3","a2":"a2","addJson":{"a1":"a3","a2":"a2"}}
}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1812 次点击
上一篇:Go 1.9中值得关注的几个变化
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
github地址 https://github.com/hljdxjiang/gojson
代码使用示例
package main
import (
"fmt"
"github.com/hljdxjiang/gojson"
)
func main() {
JsonObjectTest()
JsonArrayTest()
}
func JsonObjectTest() {
jsonString := `{"a1":"a1"}`
jo, err := gojson.JsonObject(jsonString)
if err != nil {
fmt.Println(err)
}
jo.SetKey("a2", "a2")
fmt.Println(jo.Encode()) //{"a1":"a1","a2":"a2"}
//update a1.value
jo.SetKey("a1", "a3")
fmt.Println(jo.Encode()) //{"a1":"a3","a2":"a2"}
//new a json without item
njo := gojson.NewJsonObject()
njo.SetKey("ad1", "ad1") //{"ad1":"ad1"}
fmt.Println(njo.Encode())
//add another JsonObject
njo.AppendObject(*jo)
fmt.Println(njo.Encode()) //{"ad1":"ad1","a1":"a3","a2":"a2"}
njo.SetKey("addJson", *jo)
fmt.Println(njo.Encode()) //{"ad1":"ad1","a1":"a3","a2":"a2","addJson":{"a1":"a3","a2":"a2"}}
fmt.Println(njo.GetValueByIndex(1).AsString("")) //a2
for _, val := range njo.GetKeys() {
fmt.Println(njo.GetValue(val).AsString(""))
}
fmt.Println(jo.GetIndex("a2"))
fmt.Println(jo.GetValueByIndex(1).AsString())
}
func JsonArrayTest() {
jsonarrString := `["aa","bb"]`
ja, err := gojson.JsonArray(jsonarrString)
if err != nil {
fmt.Println(err)
}
ja.AddItem("cc")
jsonString := `{"a1":"a1"}`
jo, err := gojson.JsonObject(jsonString)
if err != nil {
fmt.Println(err)
}
ja.AddItem(*jo)
fmt.Println(ja.Encode()) //["aa","bb","cc",{"a1":"a1"}]
nja := gojson.NewJsonArray()
nja.AddItem("ff")
nja.Append(*ja)
fmt.Println(nja.Encode()) //{"ad1":"ad1","a1":"a3","a2":"a2","addJson":{"a1":"a3","a2":"a2"}}
}