Golang解析json的几种方法
2024-09-01 07:32:42
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来操作
最新文章
- InputStream、InputStreamReader和Reader的关系
- Java学习-004-传世经典Helloworld
- ZooKeeper常见问题(转)
- configure错误列表供参考
- 3555: [Ctsc2014]企鹅QQ
- CSS核心属性
- HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册
- 微信公众平台网页登录授权多次重定向跳转,导致code使用多次问题
- core ML学习
- python + PyQt5 实现 简易计算器
- Node.js、npm、vue-cli 的安装配置环境变量
- VSS(Virtual Switching System)
- Redis-09.慢查询
- C中的malloc/free与C++中的new/delete的用法与区别
- python3+selenium入门06-浏览器操作
- Python3 timeit的用法
- 529. Minesweeper扫雷游戏
- 机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables)
- MIRUO面试题
- Windows多线程基础
热门文章
- vue学习(三)组件传值
- CentOS 7 下oracle 11G R2 ADG 搭建
- Mysql:分支结构—case结构
- 51nod 1287: 加农炮 好题啊好题
- tx2系统备份与恢复
- Kmeans应用
- 颜色设置 <;color name=";white";>;#FFFFFF<;/color>;<;!--白色 -->;
- Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境
- js冒泡,阻止冒泡
- h5-transform-3d