• 使用 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选择器相关推荐

  1. 基于Golang的简单web服务程序开发——CloudGo

    基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...

  2. 基于Golang的对象序列化的程序包开发——myJsonMarshal

    基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...

  3. 基于Golang的监听读取配置文件的程序包开发——simpleConfig_v1

    基于Golang的监听&读取配置文件的程序包开发--simpleConfig_v1 [阅读时间:约10分钟] 一.配置文件概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 ...

  4. echarts结合阿里云地图json选择器展示地图

    效果: 1:引入echarts的官方JS:上手echarts文档 使用示例: 2:配套你的地图json用这个,但是只到区:阿里云地图json选择器 使用示例: 3:(1)推荐一个可以精确到镇街的地图选 ...

  5. 服务器之间文件同步 go,基于golang文件实时监控并同步远端服务器工具

    ### SftpSync 基于golang开发的 文件实时同步软件 ### 前言 1.本人是个重度某度云用户,但是云盘的速度不开会员的情况下真是太慢了,而且也不能实时备份,所以想过自己搭建一个NAS. ...

  6. 基于Golang的http、web服务框架(SSSS)

    ssss 是基于Golang的http.web服务框架.此框架的目标并不是想做一个大而全的web容器,它主要用于开发高性能的底层http服务.没有会话管理模块,不支持正则路由.支持如下特性:MVC,类 ...

  7. 组件分享之后端组件——基于Golang实现的database/sql附加功能组件dbr

    组件分享之后端组件--基于Golang实现的database/sql附加功能组件dbr 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题, ...

  8. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发

    基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...

  9. 基于Golang的CLI 命令行程序开发

    基于Golang的CLI 命令行程序开发 [阅读时间:约15分钟] 一. CLI 命令行程序概述 二. 系统环境&项目介绍&开发准备 1.系统环境 2.项目介绍 3.开发准备 三.具体 ...

最新文章

  1. Transformer变体为何无法应用于多种任务?谷歌:这些架构更改不能有效迁移
  2. 饥荒 死亡后不删存档的办法
  3. springside地址
  4. OpenCV图像处理——判断图像是否失焦模糊
  5. python虚拟环境搭建learning_log_vscode Python 虚拟环境搭建
  6. Java启动sparksql,spark-sql启动的时候需要制定master吗?
  7. SoapUI使用教程
  8. MODIS,Himwari-8遥感数据介绍
  9. css中border属性设置
  10. Ubuntu压缩视频
  11. 字节跳动李航博士入选2019 ACL Fellow,成为第五位入选华人学者
  12. canvas 实现截图功能——截取图片的一部分
  13. IBM新型Tivoli产品搭建绿色销售渠道
  14. 裸眼3d项目,数字平原是这样制作的
  15. Ant Design中Form组件重置验证条件resetFields()方法
  16. Excel根据不同取值设置单元格颜色
  17. 苹果平板一定要用原装笔吗?苹果平板电容笔推荐
  18. scau csapp复习
  19. 计算机系统喇叭发生警报,电脑开机有报警声怎么回事
  20. 2022电工(初级)考试题模拟考试题库及在线模拟考试

热门文章

  1. 汇编语言 将数据区BUF1中的10个数,传送到数据区BUF2中并计算BUF1数据的累加和
  2. SAP获取企业微信打开记录并更新HR相关数据
  3. java程序员电影_Java程序员必看电影:Java 4-ever
  4. win10实现修改显示语言为中文
  5. 一个C语言源程序是如何到一个可执行程序的
  6. python显示程序运行进度_显示Python程序运行进度
  7. LeetCode 1334. 阈值距离内邻居最少的城市--堆优化最短路
  8. 【LaTeX】论文初稿模板
  9. 文件批量改名#批量修改文件名称中有特殊符号
  10. inner_product