美文网首页
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