基于golang的Json选择器
- 使用 https://github.com/mangenotwork/gathertool 库的JsonFind()函数来选择json
func JsonFind(jsonStr, find string) (interface{}, error) {}
参数说明
// JsonFind 按路径寻找指定json值
// @find : 寻找路径,与目录的url类似, 下面是一个例子:
// json: {a:[{b:1},{b:2}]}
// find=/a/[0] => {b:1}
// find=a/[0]/b => 1
json 例子:
{"reason":"查询成功!","result":{"city":"苏州","realtime":{"temperature":"17","humidity":"69","info":"阴","wid":"02","direct":"东风","power":"2级","aqi":"30"},"future":[{"date":"2021-10-25","temperature":"12\/21℃","weather":"多云","wid":{"day":"01","night":"01"},"direct":"东风"},{"date":"2021-10-26","temperature":"13\/21℃","weather":"多云","wid":{"day":"01","night":"01"},"direct":"东风转东北风"},{"date":"2021-10-27","temperature":"13\/22℃","weather":"多云","wid":{"day":"01","night":"01"},"direct":"东北风"},{"date":"2021-10-28","temperature":"13\/21℃","weather":"多云转晴","wid":{"day":"01","night":"00"},"direct":"东北风"},{"date":"2021-10-29","temperature":"14\/21℃","weather":"多云转小雨","wid":{"day":"01","night":"07"},"direct":"东北风"}]},"error_code":0
}
如上面的json,要选择出future的第一个的date的值,
import (gt "github.com/mangenotwork/gathertool""log"
)func main(){// txt 是上文的jsonlog.Println( gt.JsonFind(txt, "/result/future/[0]/date"))
}
输出: 2022/07/29 10:23:08 2021-10-25 < nil >
更多例子
package mainimport (gt "github.com/mangenotwork/gathertool""log"
)func main(){txt := `{"reason":"查询成功!","result":{"city":"苏州","realtime":{"temperature":"17","humidity":"69","info":"阴","wid":"02","direct":"东风","power":"2级","aqi":"30"},"future":[{"date":"2021-10-25","temperature":"12\/21℃","weather":"多云","wid":{"day":"01","night":"01"},"direct":"东风"},{"date":"2021-10-26","temperature":"13\/21℃","weather":"多云","wid":{"day":"01","night":"01"},"direct":"东风转东北风"},{"date":"2021-10-27","temperature":"13\/22℃","weather":"多云","wid":{"day":"01","night":"01"},"direct":"东北风"},{"date":"2021-10-28","temperature":"13\/21℃","weather":"多云转晴","wid":{"day":"01","night":"00"},"direct":"东北风"},{"date":"2021-10-29","temperature":"14\/21℃","weather":"多云转小雨","wid":{"day":"01","night":"07"},"direct":"东北风"}]},"error_code":0
}`jx1 := "/result/future/[0]/date"jx2 := "/result/future/[0]"jx3 := "/result/future"log.Println(gt.JsonFind(txt, jx1))log.Println(gt.JsonFind2Json(txt, jx2))log.Println(gt.JsonFind2Json(txt, jx3))log.Println(gt.JsonFind2Map(txt, jx2))log.Println(gt.JsonFind2Arr(txt, jx3))}
输出
2022/07/29 10:23:08 2021-10-25 <nil>
2022/07/29 10:23:08 {"date":"2021-10-25","direct":"东风","temperature":"12/21℃","weather":"多云","wid":{"day":"01","night":"01"}} <nil>
2022/07/29 10:23:08 [{"date":"2021-10-25","direct":"东风","temperature":"12/21℃","weather":"多云","wid":{"day":"01","night":"01"}},{"date":"2021-10-26","direct":"东风转东北风","temperature":"13/21℃","weather":"多云","wid":{"day":"01","night":"01"}},{"date":"2021-10-27","direct":"东北风","temperature":"13/22℃","weather":"多云","wid":{"day":"01","night":"01"}},{"date":"2021-10-28","direct":"东北风","temperature":"13/21℃","weather":"多云转晴","wid":{"day":"01","night":"00"}},{"date":"2021-10-29","direct":"东北风","temperature":"14/21℃","weather":"多云转小雨","wid":{"day":"01","night":"07"}}] <nil>
2022/07/29 10:23:08 map[date:2021-10-25 direct:东风 temperature:12/21℃ weather:多云 wid:map[day:01 night:01]] <nil>
2022/07/29 10:23:08 [map[date:2021-10-25 direct:东风 temperature:12/21℃ weather:多云 wid:map[day:01 night:01]] map[date:2021-10-26 direct:东风转东北风 temperature:13/21℃ weather:多云 wid:map[day:01 night:01]] map[date:2021-10-27 direct:东北风 temperature:13/22℃ weather:多云 wid:map[day:01 night:01]] map[date:2021-10-28 direct:东北风 temperature:13/21℃ weather:多云转晴 wid:map[day:01 night:00]] map[date:2021-10-29 direct:东北风 temperature:14/21℃ weather:多云转小雨 wid:map[day:01 night:07]]] <nil>
基于golang的Json选择器相关推荐
- 基于Golang的简单web服务程序开发——CloudGo
基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...
- 基于Golang的对象序列化的程序包开发——myJsonMarshal
基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...
- 基于Golang的监听读取配置文件的程序包开发——simpleConfig_v1
基于Golang的监听&读取配置文件的程序包开发--simpleConfig_v1 [阅读时间:约10分钟] 一.配置文件概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 ...
- echarts结合阿里云地图json选择器展示地图
效果: 1:引入echarts的官方JS:上手echarts文档 使用示例: 2:配套你的地图json用这个,但是只到区:阿里云地图json选择器 使用示例: 3:(1)推荐一个可以精确到镇街的地图选 ...
- 服务器之间文件同步 go,基于golang文件实时监控并同步远端服务器工具
### SftpSync 基于golang开发的 文件实时同步软件 ### 前言 1.本人是个重度某度云用户,但是云盘的速度不开会员的情况下真是太慢了,而且也不能实时备份,所以想过自己搭建一个NAS. ...
- 基于Golang的http、web服务框架(SSSS)
ssss 是基于Golang的http.web服务框架.此框架的目标并不是想做一个大而全的web容器,它主要用于开发高性能的底层http服务.没有会话管理模块,不支持正则路由.支持如下特性:MVC,类 ...
- 组件分享之后端组件——基于Golang实现的database/sql附加功能组件dbr
组件分享之后端组件--基于Golang实现的database/sql附加功能组件dbr 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题, ...
- 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...
- 基于Golang的CLI 命令行程序开发
基于Golang的CLI 命令行程序开发 [阅读时间:约15分钟] 一. CLI 命令行程序概述 二. 系统环境&项目介绍&开发准备 1.系统环境 2.项目介绍 3.开发准备 三.具体 ...
最新文章
- Transformer变体为何无法应用于多种任务?谷歌:这些架构更改不能有效迁移
- 饥荒 死亡后不删存档的办法
- springside地址
- OpenCV图像处理——判断图像是否失焦模糊
- python虚拟环境搭建learning_log_vscode Python 虚拟环境搭建
- Java启动sparksql,spark-sql启动的时候需要制定master吗?
- SoapUI使用教程
- MODIS,Himwari-8遥感数据介绍
- css中border属性设置
- Ubuntu压缩视频
- 字节跳动李航博士入选2019 ACL Fellow,成为第五位入选华人学者
- canvas 实现截图功能——截取图片的一部分
- IBM新型Tivoli产品搭建绿色销售渠道
- 裸眼3d项目,数字平原是这样制作的
- Ant Design中Form组件重置验证条件resetFields()方法
- Excel根据不同取值设置单元格颜色
- 苹果平板一定要用原装笔吗?苹果平板电容笔推荐
- scau csapp复习
- 计算机系统喇叭发生警报,电脑开机有报警声怎么回事
- 2022电工(初级)考试题模拟考试题库及在线模拟考试