美文网首页
Golang生成及解析JSON

Golang生成及解析JSON

作者: 懒人程序猿 | 来源:发表于2020-04-01 11:57 被阅读0次

生成及解析json

func Jsons() {
    var err error
    // json to struct
    type List struct {
        Id int  `json:"id"`
        Name string `json:"name"`
        Mobile string   `json:"mobile"`
        IsDelete bool   `json:"is_delete"`
    }
    type Data struct {
        Code int    `json:"code"`
        List []List `json:"list"`
    }
    jsonStr := `{"code": 1, "list": [
                {"id": 1, "name": "刘备", "mobile": "13399999999", "is_delete": true},
                {"id": 2, "name": "张飞", "mobile": "13388888888", "is_delete": false},
                {"id": 3, "name": "关羽", "mobile": "13366666666", "is_delete": true}
                ]}`
    fmt.Println("--------------------------------------- json to struct")
    var data Data
    err = json.Unmarshal([]byte(jsonStr), &data)
    if err == nil {
        fmt.Println(data)
    } else {
        fmt.Println(err.Error())
    }
    fmt.Println("--------------------------------------- json to map")
    // json to map
    mapData := make(map[string]interface{})
    err = json.Unmarshal([]byte(jsonStr), &mapData)
    if err == nil {
        fmt.Println(mapData)
    } else {
        fmt.Println(err.Error())
    }
    fmt.Println("--------------------------------------- struct to json")
    // struct to json
    structJson, err := json.Marshal(data)
    if err == nil {
        fmt.Println(string(structJson))
    } else {
        fmt.Println(err.Error())
    }
    fmt.Println("--------------------------------------- map to json")
    // map to json
    mapJson, err := json.Marshal(mapData)
    if err == nil {
        fmt.Println(string(mapJson))
    } else {
        fmt.Println(err.Error())
    }
}

Debug输出

image.png

相关文章

网友评论

      本文标题:Golang生成及解析JSON

      本文链接:https://www.haomeiwen.com/subject/nmmouhtx.html