首页 > Web开发 > 详细

Golang解析json的几种方法

时间:2020-02-10 20:12:09      阅读:60      评论:0      收藏:0      [点我收藏+]

Golang解析json的几种方法

概要

使用Golang调用其它平台API接口时总会被多层的json串给恶心到,我记录一下自己解析json的几种方法。

一、自带的json包

func JsonUnmarshal(b []byte) {
    var s Student
    if err := json.Unmarshal(b, &s); err != nil {
        log.Println(err)
    }
}

二、强制类型装换和反射

func GetItemMap(parent map[string]interface{}, key string) map[string]interface{} {
    val, ok := parent[key].(map[string]interface{})
    if ok {
        return val
    } else {
        return nil
    }
}
func GetItemString(parent map[string]interface{}, key string) string {
    val, ok := parent[key].(string)
    if ok {
        return val
    }
    return ""
}
我只展示了部分函数,大概的想法都差不多,只需将原有的[]byte转为map[string]interface{}类型,然后使用这些函数即可。

使用mapstructure

func MapStruct(b []byte) {
    var s Student
    var tmp map[string]interface{}
    
    json.Unmarshal(b, &tmp)
    err := mapstructure.Decode(tmp, &s)
    if err != nil {
        fmt.Println(err)
    }
}

总结

最常用是二、三两种方式结合使用,将json串中所需要的那一解析出来,然后使用mapsruct来操作

Golang解析json的几种方法

原文:https://www.cnblogs.com/clod777/p/12292395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!