github.com/antchfx/jsonquery基本使用

要在 GitHub 上使用 antchfx/jsonquery 库来查找 JSON 文档中的元素,首先需要了解这个库的基本用法。jsonquery 是一个用于查询 JSON 数据的 Go 语言库,允许使用 XPath 表达式来查找和选择 JSON 数据中的元素。

以下是一些基本步骤和示例,演示如何使用 jsonquery 查找 JSON 数据中的元素。

安装库

首先,确保已安装 antchfx/jsonquery 库:

go get github.com/antchfx/jsonquery

示例 JSON 数据

假设有一个 JSON 文件 example.json

{"store": {"book": [{"category": "reference","author": "Nigel Rees","title": "Sayings of the Century","price": 8.95},{"category": "fiction","author": "Evelyn Waugh","title": "Sword of Honour","price": 12.99}],"bicycle": {"color": "red","price": 19.95}}
}

查找 JSON 元素

以下是一个简单的 Go 程序,演示如何使用 jsonquery 查找 JSON 数据中的元素:

package mainimport ("fmt""github.com/antchfx/jsonquery""os"
)func main() {// 打开 JSON 文件file, err := os.Open("example.json")if err != nil {panic(err)}defer file.Close()// 解析 JSON 文件doc, err := jsonquery.Parse(file)if err != nil {panic(err)}// 查找所有书籍books := jsonquery.Find(doc, "//book")for _, book := range books {fmt.Printf("Category: %s, Title: %s, Author: %s, Price: %.2f\n",jsonquery.FindOne(book, "category").InnerText(),jsonquery.FindOne(book, "title").InnerText(),jsonquery.FindOne(book, "author").InnerText(),jsonquery.FindOne(book, "price").InnerText(),)}// 查找特定元素,例如自行车的颜色bicycleColor := jsonquery.FindOne(doc, "//bicycle/color")if bicycleColor != nil {fmt.Printf("Bicycle color: %s\n", bicycleColor.InnerText())}
}

运行程序

确保 example.json 文件和 Go 程序在同一目录下,然后运行程序:

go run main.go

输出

程序运行后,将输出:

Category: reference, Title: Sayings of the Century, Author: Nigel Rees, Price: 8.95
Category: fiction, Title: Sword of Honour, Author: Evelyn Waugh, Price: 12.99
Bicycle color: red

详细说明

  • jsonquery.Parse(file):解析 JSON 文件。
  • jsonquery.Find(doc, "//book"):使用 XPath 表达式查找所有书籍。
  • jsonquery.FindOne(book, "category").InnerText():查找并获取单个元素的文本内容。

通过这些步骤,您可以使用 jsonquery 库来查询 JSON 数据,并根据需要查找和提取特定的元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/46372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

couldn‘t read native报错!Typora中使用Pandoc导出Word失败的解决方法

couldn‘t read native报错!Typora中使用Pandoc导出Word失败的解决方法 一、问题描述 在Typora中使用Pandoc将markdown文件导出为word文件时,发生如下图所示错误: 在网上找了资料以后,发现是因为md文件里面有表格,如果把表格删掉…

学生管理系统(C语言)(Easy-x)

课 程 报 告 课 程 名 称: 程序设计实践 专 业 班 级 : XXXXX XXXXX 学 生 姓 名 : XXX 学 号 : 231040700302 任 课 教 师 &a…

网页制作技术:概念、现状与展望?

网页制作技术:概念、现状与展望? 李升伟 网页制作技术是指用于创建和维护网站的一系列技术和方法。 概念: 它涉及多个方面,包括使用 HTML(超文本标记语言)来构建网页的结构和内容,使用 CSS&…

Rust Result 与可恢复的错误

Result 与可恢复的错误 大部分错误并没有严重到需要程序完全停止执行。有时,一个函数会因为一个容易理解并做出反应的原因失败。例如,如果因为打开一个并不存在的文件而失败,此时我们可能想要创建这个文件,而不是终止进程。 回忆…

RT-DETR+Flask实现目标检测推理案例

今天,带大家利用RT-DETR(我们可以换成任意一个模型)Flask来实现一个目标检测平台小案例,其实现效果如下: 目标检测案例 这个案例很简单,就是让我们上传一张图像,随后选择一下置信度,…

GPT LangChain experimental agent - allow dangerous code

题意:GPT LangChain 实验性代理 - 允许危险代码 问题背景: Im creating a chatbot in VS Code where it will receive csv file through a prompt on Streamlit interface. However from the moment that file is loaded, it is showing a message with…

第12章 结构化命令《Linux命令行与Shell脚本编程大全笔记》

12.1 if-then命令 不同于其他语言,if后面不是一个等式,而是命令,如果命令运行成功返回状态码0则运行then语句部分把分号(;)放到命令尾部,可以将then语句写在同一行 12.4 test命令 格式:if te…

激活pytorch遇到报错usage: conda-script.py [-h] [--no-plugins] [-V] COMMAND ...

问题 今天初次尝试在pycharm上创建与激活虚拟环境,创建结束后,使用命令conda activate pytorch激活虚拟环境时出现以下报错: usage: conda-script.py [-h] [–no-plugins] [-V] COMMAND … conda-script.py: error: argument COMMAND: inval…

Selenium原理深度解析

在自动化测试领域,Selenium无疑是最受欢迎和广泛使用的工具之一。它支持多种浏览器和操作系统,为开发人员和测试人员提供了强大的自动化测试解决方案。本文将深入探讨Selenium的工作原理,包括其架构、核心组件、执行流程以及它在自动化测试中…

独立开发者系列(26)——域名与解析

域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。 由于IP地址不方便…

postMessageXss续2

原文地址如下:https://research.securitum.com/art-of-bug-bounty-a-way-from-js-file-analysis-to-xss/ 在19年我写了一篇文章,是基于postMessageXss漏洞的入门教学:https://www.cnblogs.com/piaomiaohongchen/p/14727871.html 这几天浏览mXss技术的时候&#xff…

模型蒸馏、量化、裁剪的概念和区别

模型压缩概述 1.1 模型压缩的重要性 随着深度学习技术的快速发展,神经网络模型在各种任务中取得了显著的成功。然而,这些模型通常具有大量的参数和复杂的结构,导致模型体积庞大、计算资源消耗高和推理时间长。这些问题限制了深度学习模型在…

车载音视频App框架设计

简介 统一播放器提供媒体播放一致性的交互和视觉体验,减少各个媒体应用和场景独自开发的重复工作量,实现媒体播放链路的一致性,减少碎片化的Bug。本文面向应用开发者介绍如何快速接入媒体播放器。 主要功能: 新设计的统一播放U…

新版本cesium编译1.103之后的版本

cesium1.1之后的版本文件结构域1.1之前的版本有了很大的差别,源码也全部移到了packages目录中。有很多依赖包没有写在根目录的package.json文件中。npm i 后直接编译会保持。 cesium源码git https://github.com/CesiumGS/cesium 1、添加缺少的包,缺少的…

4. 双端口ram设计

1. 设计要求 设计一个位宽8bit,地址深度为128,可以同时读写的双端口RAM 要求:模块名字为RAM_DUAL 输入端口:ADDR_W,ADDR_R CLK_R,CLK_W,RSTn ADDR_R[6:0],ADDR_W[6:0] DATA_WR…

k8s学习——创建测试镜像

创建一个安装了ifconfig、telnet、curl、nc、traceroute、ping、nslookup等网络工具的镜像,便于集群中的测试。 创建一个Dockerfile文件 # 使用代理下载 Ubuntu 镜像作为基础 FROM docker.m.daocloud.io/library/ubuntu:latest# 设置环境变量 DEBIAN_FRONTEND 为 …

学习测试9-接口测试 2-抓包工具Fiddler

Fiddler 抓包工具的使用 怎么找接口信息,可以通过浏览器的开发者工具 Fiddler 是一个 HTTP 协议调试代理工具 File 菜单: Capture Traffic(或 F12):是个开关,可以控制是否把 Fiddler 注册为系统代理。当把…

浅谈Open.Json.pickle.Os

一、Open函数使用 open函数是 Python 中用于打开文件的内置函数,它返回一个文件对象,该文件对象提供了对文件进行读写操作的方法。使用 open 函数时,通常需要指定至少两个参数:文件名(file)和模式&#xf…

【网络工具】Charles 介绍及环境配置

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/iAmAo 📚专栏简介:在这个专栏中,我将会整理一些工作或学习中用到的工具介绍给大家~ 📘Charles 系列其它文章:【网络…

Git操纵本地仓库和远程仓库

git是一个代码托管的平台,我们可以对我们的代码进行分支 推送提交 打标签等等操作,而且git使用过程中也是支持一些linux语言的 比如cd呀 touch mkdir啊等等等 git的具体安装过程就不再赘述 我个人认为 好多东西就是 代码也好 文字 文档 也好&…