Golang中对json的优雅处理方式

2023-12-05 0 664
目录
  • 背景
  • 原有方式
    • 转化为 map[string]interface
    • 预定义结构体 struct
  • 推荐: GJSON 处理
    • 总结

      背景

      作为一种强数据类型的语言, Golang 对 json 的处理很麻烦。已知 json 的数据类型有:

      • 字符串
      • 数字
      • 数组
      • 字典
      • 上述类型的嵌套

      如果是弱数据类型的语言,例如 js , Python等,不需要考虑类型就直接可以使用。

      原有方式

      对 json 的处理分为编码和解码。 编码是把已有的数据对象转为 json 对象, 解码反之。

      Golang 对编码比较好处理,直接把数据对象放到原生的 json.Marshal() 函数中即可返回字节数组。但对于解码来说,就比较复杂了。

      转化为 map[string]interface

      golang 中的 interface 相当于 Java 中的 Object, 什么都可以往里面放,但放进去方便就意味着取出来很麻烦。

      例如想要从这个 json 字符串中取出 float64 类型的 数学成绩,需要不断的做类型转换和map取值判断,非常复杂。

      Golang中对json的优雅处理方式

      预定义结构体 struct

      预先定义一个结构体,让内置的解码函数来做属性映射, 比上面一种方法方便和常见很多,但是需要预先知道数据的详细结构,不然没法定义出来这个结构体。

      Golang中对json的优雅处理方式

      推荐: GJSON 处理

    • 软性返回,也就是数据类型如果对不上会返回对应的零值,而非 err 或者 panic , 所以不需要一定要预先知道原始类型。
    • 提供多种数据类型和对应的 IsXXX() 判断函数,来辅助解决上面的零值问题
    • 路径解析方便, 通过像弱数据类型语言一样 . 语法来做解析,极大的简化了 json 的解码问题。
    • Golang中对json的优雅处理方式

      总结

      到此这篇关于Golang中对json的优雅处理方式的文章就介绍到这了,更多相关Golang对json优雅处理内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

      您可能感兴趣的文章:

      • 利用Golang解析json数据的方法示例
      • Golang中使用JSON的一些小技巧分享
      • Golang实现解析JSON的三种方法总结
      • Golang JSON的进阶用法实例讲解

      收藏 (0) 打赏

      感谢您的支持,我会继续努力的!

      打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
      点赞 (0)

      悠久资源 Golang Golang中对json的优雅处理方式 https://www.u-9.cn/jiaoben/golang/102024.html

      常见问题

      相关文章

      发表评论
      暂无评论
      官方客服团队

      为您解决烦忧 - 24小时在线 专业服务