国产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”}}}之類的嵌套對象,請使用點(diǎn)符號:jq'.user.details.name'data.json。處理數(shù)組時(shí),例如{“用戶”:[{“ name”:“ alice”},{“ name”:“ bob”}]},使用jq'.users []。name'data.json檢索所有名稱,或通過index:jq'.users:jq'users [0] .name data.json訪問特定元素。要在腳本中進(jìn)一步處理結(jié)果,請使用-r標(biāo)志進(jìn)行原始輸出,并使用字符串插值組合字段:JQ -R'“名稱:$(。user.details.name),電子郵件:$($(。user.details.email)”'data.json。使用這些方法,JQ簡化了殼環(huán)境中的JSON解析和操縱。

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

默認(rèn)情況下,在Shell腳本中解析JSON并不是一件直接的,但是使用jq ,它既容易又強(qiáng)大。關(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要提取哪個(gè)字段。

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

 JQ'.NAME'DATA.JSON

從嵌套對象中提取值

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

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

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

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

那將返回:

 “鮑勃”

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


處理JSON中的陣列

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

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

獲取所有名稱:

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

輸出:

 “愛麗絲”
“鮑勃”

如果您只需要名字:

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

給出:

 “愛麗絲”

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

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

格式化輸出以用于腳本

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

例如:

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

返回:

鮑勃

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

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

 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ā)貢獻(xiàn),版權(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

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
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擴(kuò)展和json_encode()函數(shù);添加JSON_UNESCAPED_UNICODE選項(xiàng)以避免字符轉(zhuǎn)義;使用緩沖區(qū)提高循環(huán)編碼性能;緩存JSON編碼結(jié)果;考慮使用第三方JSON編碼庫。

如何在 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ù)需要一個(gè)目標(biāo)類型指針來解組JSON數(shù)據(jù)。這兩種方法都需要準(zhǔn)備SQL語句和執(zhí)行插入操作來將數(shù)據(jù)持久化到數(shù)據(jù)庫中。

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 函數(shù)處理 JSON 數(shù)據(jù)? 如何使用 PHP 函數(shù)處理 JSON 數(shù)據(jù)? May 04, 2024 pm 03:21 PM

PHP提供了以下函數(shù)來處理JSON數(shù)據(jù):解析JSON數(shù)據(jù):使用json_decode()將JSON字符串轉(zhuǎn)換為PHP數(shù)組。創(chuàng)建JSON數(shù)據(jù):使用json_encode()將PHP數(shù)組或?qū)ο筠D(zhuǎn)換為JSON字符串。獲取JSON數(shù)據(jù)的特定值:使用PHP數(shù)組函數(shù)訪問特定值,例如鍵值對或數(shù)組元素。

PHP 數(shù)組轉(zhuǎn) JSON 的快捷技巧 PHP 數(shù)組轉(zhuǎn) JSON 的快捷技巧 May 03, 2024 pm 06:33 PM

PHP數(shù)組可通過json_encode()函數(shù)轉(zhuǎn)換為JSON字符串(例如:$json=json_encode($array);),反之亦可用json_decode()函數(shù)從JSON轉(zhuǎn)換為數(shù)組($array=json_decode($json);)。其他技巧還包括:避免深度轉(zhuǎn)換、指定自定義選項(xiàng)以及使用第三方庫。

征服 Java JSON 處理的巔峰:解析和創(chuàng)建復(fù)雜數(shù)據(jù) 征服 Java JSON 處理的巔峰:解析和創(chuàng)建復(fù)雜數(shù)據(jù) Mar 09, 2024 am 09:13 AM

解析JSON數(shù)據(jù)解析JSON數(shù)據(jù)是處理復(fù)雜數(shù)據(jù)的關(guān)鍵一步。在Java中,我們可以使用以下方法:使用Gson庫:Gson是一個(gè)廣泛使用的jsON解析庫,提供了一個(gè)簡潔且高效的api,如下所示:Gsongson=newGson();JsonObjectjsonObject=gson.fromJson(jsonString,JsonObject.class);使用Jackson庫:Jackson是另一個(gè)流行的JSON處理庫,支持豐富的功能和對其他格式(如XML)的轉(zhuǎn)換,如下所示:ObjectMappe

是否有基于JSON的RSS替代方案? 是否有基于JSON的RSS替代方案? Apr 10, 2025 am 09:31 AM

JSONFeed是一種基于JSON的RSS替代方案,其優(yōu)勢在于簡潔性和易用性。1)JSONFeed使用JSON格式,易于生成和解析。2)它支持動(dòng)態(tài)生成,適用于現(xiàn)代Web開發(fā)。3)使用JSONFeed可以提升內(nèi)容管理效率和用戶體驗(yàn)。

JSON與XML:為什么RSS選擇XML JSON與XML:為什么RSS選擇XML May 05, 2025 am 12:01 AM

RSS選擇XML而不是JSON是因?yàn)椋?)XML的結(jié)構(gòu)化和驗(yàn)證能力優(yōu)于JSON,適合RSS復(fù)雜數(shù)據(jù)結(jié)構(gòu)的需求;2)XML當(dāng)時(shí)有廣泛的工具支持;3)RSS早期版本基于XML,已成標(biāo)準(zhǔn)。

See all articles