Golang之gjson
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相关推荐
- golang的GJSON库
2019独角兽企业重金招聘Python工程师标准>>> get json values quickly GJSON is a Go package that provide ...
- gjson - Golang 解析 JSON
文章目录 简介 主要类型 Type Result 方法 gjson result Path 修饰符 示例 介绍 自定义 备用 简介 Github 地址 go 安装: go get -u github. ...
- electron/nodejs实现调用golang函数
https://www.jianshu.com/p/a3be0d206d4c 思路 golang 支持编译成c shared library, 也就是系统中常见的.so(windows下是dll)后缀 ...
- 突然发现一个很好用Golang的json库
2019独角兽企业重金招聘Python工程师标准>>> json 我并不想解释json是什么. 库名 GJSON 点这里去star感谢小哥 下载 $ go get -u github ...
- 【Golang】对接百度翻译API-golang版本sdk代码
最近为自己的客服系统增加了在线翻译功能 可以把访客任何语种消息翻译为中文 客服消息一键翻译为英文,详细演示效果可以注册唯一客服系统(gofly.v1kf.com),我审核通过后就可以体验了 详细gol ...
- golang工作中常用的一些库
1.json解析 非常好用的json解析工具库 github.com/tidwall/gjson 高性能json库,替代encoding/json https://github.com/json-it ...
- golang常用的工具包
1. 一个巨好用的泛型库,可以极大提高开发速度 https://github.com/samber/lo https://github.com/samber/lo 2. 类型转换 https:// ...
- Golang实现发送微信公众号模板消息(每日一句和天气预报)
Golang实现发送微信模板消息(每日一句和天气预报) 前言 本文是基于https://www.cnblogs.com/connect/p/python-wechat-iciba.html 这篇博客写 ...
- Golang的基本语法学习笔记
1.var 变量名称 类型 变量声明后没有初始化的话 值为空 变量首字符不能为数字 关键字不能作为变量名 同一个作用域不允许变量重复声明 但是以下属于赋值,是允许的 一次定义多个变量 注意:赋值时必须 ...
最新文章
- @程序员:这些瓜没吃到,可以告别互联网了!
- 【ASP.NET 进阶】验证码的实现
- MPLS是如何工作?MPLS的完整指南和常见问题解答
- 图像马赛克原理及实现
- ELK之elasticsearch5.6的安装和head插件的安装
- Word自动生成的目录超出页边距
- 计算机网络视频信号怎么传,如何将摄像机视频信号通过NDI传输到Zoom会议软件...
- Mybatis 框架CRUD的操作 案例
- KERNEL32.DLL中可供调用的API函数列表
- 从 0 开始搭建 Hexo 博客
- 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。
- MySQL修改密码(三种方法示例)
- h5 vr效果_Web端VR初介绍
- 无线测温产品在山西煤矸石制砖余热发电项目中的应用
- Vue实现3D全景图,photo-sphere-viewer
- JavaFx的ScrollPane的面板以及滚动条的css的自定义化
- 毕达哥拉斯三角形数,unsignedlong long long
- 2020双十一活动怎么玩?做好这3点引爆销量!
- helm安装etcd-ha的失败的原因是bitnami不支持ARM架构-过程分享
- 解决kubelet报错:kubelet.go:2183] node “k8s-20-52“ not found