最近写了一个go的Json的模块,已发布到github。希望大家给点意见

hljdxjiang · · 1273 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

1273 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传