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.pswp.cn/web/46372.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/46372.shtml
英文地址,請注明出處:http://en.pswp.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的具體安裝過程就不再贅述 我個人認為 好多東西就是 代碼也好 文字 文檔 也好&…