gjson主要用于从string和[]byte里取json数据。

对于interfacele{}类型,要先强制转换为[]byte或string再用gjson,其实单层json下不如直接强转为map,多层考虑用gjson。

gjson的path写法  mirror.region.regions.#.cluster_name把regions切片里的cluster_name字段取出来组成一个切片。

import "fmt"
import "github.com/tidwall/gjson"
const json = `{"name":[{"first":"Janet","last":"Prichard"}, {"abc": 1, "e" : 2}],"age":47}`var jsonInterface interface {}func main() {// 1、把string转result,再取数据gjson.Parse(json).Get("name")// 2、把[]byte转result,再取数据gjson.ParseBytes([]byte(json)).Get("name")// 3、从string格式的json直接取数据v := gjson.Get(json, "name")// 4、interface{}要先强制转换为[]byte或string,再用gjson的三种方法(单层不如直接强转为map,多层考虑用gjson)gjson.Parse(jsonInterface.(string)).Get("name")gjson.ParseBytes(jsonInterface.([]byte)).Get("name")gjson.Get(jsonInterface.(string),"name")if v.String() == "" {fmt.Println("nil")} else {fmt.Println(v.String())fmt.Println(v.Type)}
}

Golang之gjson相关推荐

  1. golang的GJSON库

    2019独角兽企业重金招聘Python工程师标准>>>      get json values quickly GJSON is a Go package that provide ...

  2. gjson - Golang 解析 JSON

    文章目录 简介 主要类型 Type Result 方法 gjson result Path 修饰符 示例 介绍 自定义 备用 简介 Github 地址 go 安装: go get -u github. ...

  3. electron/nodejs实现调用golang函数

    https://www.jianshu.com/p/a3be0d206d4c 思路 golang 支持编译成c shared library, 也就是系统中常见的.so(windows下是dll)后缀 ...

  4. 突然发现一个很好用Golang的json库

    2019独角兽企业重金招聘Python工程师标准>>> json 我并不想解释json是什么. 库名 GJSON 点这里去star感谢小哥 下载 $ go get -u github ...

  5. 【Golang】对接百度翻译API-golang版本sdk代码

    最近为自己的客服系统增加了在线翻译功能 可以把访客任何语种消息翻译为中文 客服消息一键翻译为英文,详细演示效果可以注册唯一客服系统(gofly.v1kf.com),我审核通过后就可以体验了 详细gol ...

  6. golang工作中常用的一些库

    1.json解析 非常好用的json解析工具库 github.com/tidwall/gjson 高性能json库,替代encoding/json https://github.com/json-it ...

  7. golang常用的工具包

    1. 一个巨好用的泛型库,可以极大提高开发速度 https://github.com/samber/lo   https://github.com/samber/lo 2. 类型转换 https:// ...

  8. Golang实现发送微信公众号模板消息(每日一句和天气预报)

    Golang实现发送微信模板消息(每日一句和天气预报) 前言 本文是基于https://www.cnblogs.com/connect/p/python-wechat-iciba.html 这篇博客写 ...

  9. Golang的基本语法学习笔记

    1.var 变量名称 类型 变量声明后没有初始化的话 值为空 变量首字符不能为数字 关键字不能作为变量名 同一个作用域不允许变量重复声明 但是以下属于赋值,是允许的 一次定义多个变量 注意:赋值时必须 ...

最新文章

  1. @程序员:这些瓜没吃到,可以告别互联网了!
  2. 【ASP.NET 进阶】验证码的实现
  3. MPLS是如何工作?MPLS的完整指南和常见问题解答
  4. 图像马赛克原理及实现
  5. ELK之elasticsearch5.6的安装和head插件的安装
  6. Word自动生成的目录超出页边距
  7. 计算机网络视频信号怎么传,如何将摄像机视频信号通过NDI传输到Zoom会议软件...
  8. Mybatis 框架CRUD的操作 案例
  9. KERNEL32.DLL中可供调用的API函数列表
  10. 从 0 开始搭建 Hexo 博客
  11. 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。
  12. MySQL修改密码(三种方法示例)
  13. h5 vr效果_Web端VR初介绍
  14. 无线测温产品在山西煤矸石制砖余热发电项目中的应用
  15. Vue实现3D全景图,photo-sphere-viewer
  16. JavaFx的ScrollPane的面板以及滚动条的css的自定义化
  17. 毕达哥拉斯三角形数,unsignedlong long long
  18. 2020双十一活动怎么玩?做好这3点引爆销量!
  19. helm安装etcd-ha的失败的原因是bitnami不支持ARM架构-过程分享
  20. 解决kubelet报错:kubelet.go:2183] node “k8s-20-52“ not found

热门文章

  1. 11月17日学习内容整理:jquery文档处理,事件细讲,动画
  2. lwip1.4.1需要的文件
  3. 两个js文件同时执行,解决覆盖问题
  4. Gartner:移动设备在工作场所中的使用尚未成熟
  5. 五大微信小程序开发IDE深度评测
  6. Android四大组件ContentProvider
  7. UBUNTU 12.04 下配置 HAXM 加速 ANDROID模拟器
  8. 【Android】【转】查看内存
  9. what kind of supervision will i do next semester?
  10. trl meaning genearlly we find 6