国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
使用jq的基本語法
從嵌套對象中提取值
處理JSON中的陣列
格式化輸出以用于腳本
首頁 系統(tǒng)教程 操作系統(tǒng) 如何使用JQ從外殼腳本中解析JSON?

如何使用JQ從外殼腳本中解析JSON?

Jul 08, 2025 am 12:13 AM
json jq

要使用JQ在Shell腳本中解析JSON,您可以利用其過濾語法從結(jié)構(gòu)化數(shù)據(jù)中提取值。首先將JSON輸入輸入到JQ或指定文件,例如echo'{“ name”:“ alice”}'| jq'.name'或jq'.name'data.json,它提取“名稱”鍵的值。對于{“ user”:{“ delect”:{“ name”:“ bob”}}}之類的嵌套對象,請使用點符號:jq'.user.details.name'data.json。處理數(shù)組時,例如{“用戶”:[{“ name”:“ alice”},{“ name”:“ bob”}]},使用jq'.users []。name'data.json檢索所有名稱,或通過index:jq'.users:jq'users [0] .name data.json訪問特定元素。要在腳本中進一步處理結(jié)果,請使用-r標(biāo)志進行原始輸出,并使用字符串插值組合字段:JQ -R'“名稱:$(。user.details.name),電子郵件:$($(。user.details.email)”'data.json。使用這些方法,JQ簡化了殼環(huán)境中的JSON解析和操縱。

如何使用JQ從外殼腳本中解析JSON?

默認(rèn)情況下,在Shell腳本中解析JSON并不是一件直接的,但是使用jq ,它既容易又強大。關(guān)鍵是知道如何構(gòu)建命令,以便從JSON數(shù)據(jù)中精確提取所需的內(nèi)容。


使用jq的基本語法

使用jq基本方法是將JSON數(shù)據(jù)輸送到其中或指定文件。這是一般形式:

 JQ'[filter]'[文件]

或者,如果您要管數(shù)據(jù):

 echo'{“ name”:“ alice”}'| jq'.name'

這將輸出:

 “愛麗絲”

您可以看到.name是這里的過濾器 - 它告訴jq要提取哪個字段。

如果您正在使用JSON文件( data.json ),則會做類似的事情:

 JQ'.NAME'DATA.JSON

從嵌套對象中提取值

JSON通常包含嵌套結(jié)構(gòu)。假設(shè)您有這樣的數(shù)據(jù):

 {
  “用戶”:{
    “ id”:123,
    “細(xì)節(jié)”: {
      “名稱”:“鮑勃”,
      “電子郵件”:“ bob@example.com”
    }
  }
}

為了獲取名稱,您將鍵鏈鏈鏈鏈接在一起:

 jq'.user.details.name'data.json

那將返回:

 “鮑勃”

您無需編寫特殊的解析代碼,只需使用點符號構(gòu)建正確的路徑即可。


處理JSON中的陣列

一個常見的情況是當(dāng)一個值在數(shù)組中時。例如:

 {
  “用戶”:[
    {“名稱”:“ Alice”},
    {“名稱”:“鮑勃”}
  這是給出的
}

獲取所有名稱:

 jq'.users []。名稱'data.json

輸出:

 “愛麗絲”
“鮑勃”

如果您只需要名字:

 JQ'.users [0] .NAME'data.json

給出:

 “愛麗絲”

您也可以在腳本中循環(huán)瀏覽它們:

 jq -r'.users []。名稱'data.json |在閱讀名稱時;做
  回聲“用戶:$ name”
完畢
  • -r告訴jq輸出原始字符串(無引號)。

格式化輸出以用于腳本

有時,您需要無引用或額外格式的清潔值。這就是-r旗派上用場的地方。

例如:

 jq -r'.user.details.name'data.json

返回:

鮑勃

沒有引號,這使得更容易分配到變量或進一步的shell腳本中。

另外,如果要組合多個字段,則可以使用字符串插值格式化它們:

 jq -r'“名稱:\(。user.details.name),電子郵件:\(。user.details.email)”'data.json

輸出:

名稱:鮑勃,電子郵件:bob@example.com

這使得直接從JSON生成日志線或消息變得簡單。


因此,基本上,一旦您了解如何使用過濾器導(dǎo)航結(jié)構(gòu), jq就成為處理Shell腳本中JSON的可靠工具。這并不復(fù)雜,但是正確獲得語法有助于避免以后沮喪。

以上是如何使用JQ從外殼腳本中解析JSON?的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

golang WebSocket與JSON的結(jié)合:實現(xiàn)數(shù)據(jù)傳輸和解析 golang WebSocket與JSON的結(jié)合:實現(xiàn)數(shù)據(jù)傳輸和解析 Dec 17, 2023 pm 03:06 PM

golangWebSocket與JSON的結(jié)合:實現(xiàn)數(shù)據(jù)傳輸和解析在現(xiàn)代的Web開發(fā)中,實時數(shù)據(jù)傳輸變得越來越重要。WebSocket是一種用于實現(xiàn)雙向通信的協(xié)議,與傳統(tǒng)的HTTP請求-響應(yīng)模型不同,WebSocket允許服務(wù)器向客戶端主動推送數(shù)據(jù)。而JSON(JavaScriptObjectNotation)是一種用于數(shù)據(jù)交換的輕量級格式,它簡潔易讀

PHP 數(shù)組轉(zhuǎn) JSON 的性能優(yōu)化技巧 PHP 數(shù)組轉(zhuǎn) JSON 的性能優(yōu)化技巧 May 04, 2024 pm 06:15 PM

PHP數(shù)組轉(zhuǎn)JSON的性能優(yōu)化方法包括:使用JSON擴展和json_encode()函數(shù);添加JSON_UNESCAPED_UNICODE選項以避免字符轉(zhuǎn)義;使用緩沖區(qū)提高循環(huán)編碼性能;緩存JSON編碼結(jié)果;考慮使用第三方JSON編碼庫。

MySQL5.7和MySQL8.0的區(qū)別是什么? MySQL5.7和MySQL8.0的區(qū)別是什么? Feb 19, 2024 am 11:21 AM

MySQL5.7和MySQL8.0是兩個不同的MySQL數(shù)據(jù)庫版本,它們之間有以下一些主要區(qū)別:性能改進:MySQL8.0相對于MySQL5.7有一些性能改進。其中包括更好的查詢優(yōu)化器、更高效的查詢執(zhí)行計劃生成、更好的索引算法和并行查詢等。這些改進可以提高查詢性能和整體系統(tǒng)性能。JSON支持:MySQL8.0引入了對JSON數(shù)據(jù)類型的原生支持,包括JSON數(shù)據(jù)的存儲、查詢和索引。這使得在MySQL中處理和操作JSON數(shù)據(jù)變得更加方便和高效。事務(wù)特性:MySQL8.0引入了一些新的事務(wù)特性,如原子

使用golang中的json.MarshalIndent函數(shù)將結(jié)構(gòu)體轉(zhuǎn)換為格式化的JSON字符串 使用golang中的json.MarshalIndent函數(shù)將結(jié)構(gòu)體轉(zhuǎn)換為格式化的JSON字符串 Nov 18, 2023 pm 01:59 PM

使用golang中的json.MarshalIndent函數(shù)將結(jié)構(gòu)體轉(zhuǎn)換為格式化的JSON字符串在使用Golang編寫程序時,我們經(jīng)常需要將結(jié)構(gòu)體轉(zhuǎn)換為JSON字符串,在這個過程中,json.MarshalIndent函數(shù)可以幫助我們實現(xiàn)格式化的輸出。下面我們將詳細(xì)介紹如何使用這個函數(shù),并提供具體的代碼示例。首先,讓我們創(chuàng)建一個包含一些數(shù)據(jù)的結(jié)構(gòu)體。以下是示

Jackson庫中注解如何控制JSON序列化和反序列化? Jackson庫中注解如何控制JSON序列化和反序列化? May 06, 2024 pm 10:09 PM

Jackson庫中的注解可控制JSON序列化和反序列化:序列化:@JsonIgnore:忽略屬性@JsonProperty:指定名稱@JsonGetter:使用獲取方法@JsonSetter:使用設(shè)置方法反序列化:@JsonIgnoreProperties:忽略屬性@JsonProperty:指定名稱@JsonCreator:使用構(gòu)造函數(shù)@JsonDeserialize:自定義邏輯

使用PHP的json_encode()函數(shù)將數(shù)組或?qū)ο筠D(zhuǎn)換為JSON字符串并格式化輸出 使用PHP的json_encode()函數(shù)將數(shù)組或?qū)ο筠D(zhuǎn)換為JSON字符串并格式化輸出 Nov 03, 2023 pm 03:44 PM

使用PHP的json_encode()函數(shù)將數(shù)組或?qū)ο筠D(zhuǎn)換為JSON字符串并格式化輸出,可以讓數(shù)據(jù)在不同的平臺和語言之間進行傳遞和交換變得更加容易。本文將介紹json_encode()函數(shù)的基本用法,以及如何將JSON字符串格式化輸出。一、json_encode()函數(shù)的基本用法json_encode()函數(shù)的基本語法如下:stringjson_encod

如何在 Golang 中將 JSON 數(shù)據(jù)保存到數(shù)據(jù)庫中? 如何在 Golang 中將 JSON 數(shù)據(jù)保存到數(shù)據(jù)庫中? Jun 06, 2024 am 11:24 AM

可以通過使用gjson庫或json.Unmarshal函數(shù)將JSON數(shù)據(jù)保存到MySQL數(shù)據(jù)庫中。gjson庫提供了方便的方法來解析JSON字段,而json.Unmarshal函數(shù)需要一個目標(biāo)類型指針來解組JSON數(shù)據(jù)。這兩種方法都需要準(zhǔn)備SQL語句和執(zhí)行插入操作來將數(shù)據(jù)持久化到數(shù)據(jù)庫中。

Pandas使用教程:讀取JSON文件的快速入門 Pandas使用教程:讀取JSON文件的快速入門 Jan 13, 2024 am 10:15 AM

快速入門:Pandas讀取JSON文件的方法,需要具體代碼示例引言:在數(shù)據(jù)分析和數(shù)據(jù)科學(xué)領(lǐng)域,Pandas是一個重要的Python庫之一。它提供了豐富的功能和靈活的數(shù)據(jù)結(jié)構(gòu),能夠方便地對各種數(shù)據(jù)進行處理和分析。在實際應(yīng)用中,我們經(jīng)常會遇到需要讀取JSON文件的情況。本文將介紹如何使用Pandas來讀取JSON文件,并附上具體的代碼示例。一、Pandas的安裝

See all articles