Go语言处理JSon字段

1. Json格式

var jsonstr = `{
        "Code" :"asd",
        "data":{
            "message":"ok,i'm fine"
        }
}`

完整的一条json语句中,字段都为字符串类型,值为基本数据类型:整形、布尔型、字符串等

2. Json转map

在解析json时,通常要用到encoding/json这个包

import{
    "encoding/json"
    "fmt"
}

json.Unmarshal()方法用作将一个json类型的字节流,序列化成指定的形式,可以为map,也可以为自定义的结构体,需要注意的是,希望被转换的格式需要以指针类型传入

var m = make(map[string]interface{})  // 定义的map value需为interface{}形式,为了方便处理上面的嵌套问题,保证map的嵌套封装

json.Unmarshal([]byte(jsonstr), &m)

m = m["data"].(map[string]interface{}) // 转化成map时,深层嵌套也被封装成了map

fmt.Println(m)

运行结果如下

map[message:ok,i'm fine]

3. map转json

将map或者struct打包成json,用的是json中的marshal方法,返回的是一个字节数组和一个错误类型

    var m = make(map[string]interface{})
    m["info"] = "ok,i am fine"
    x, err := json.Marshal(&m)
    if err != nil {
        return
    }
    fmt.Println(string(x))

打印结果

{"info":"ok,i am fine"}

你可能感兴趣的:(Go语言处理JSon字段)