国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

Linux 中的 JQ 命令使用實(shí)例

2024-08-27 23:54:43
字體:
供稿:網(wǎng)友
  JSON 是一種數(shù)據(jù)表示格式,用于在應(yīng)用程序的不同層之間存儲(chǔ)和傳輸數(shù)據(jù);它將數(shù)據(jù)存儲(chǔ)在鍵:值對中。在文章中,我們將學(xué)習(xí)使用 JQ 命令在shell 中操作和處理 JSON 數(shù)據(jù)。
 
  如何安裝JQ命令
  在Centos8中使用下面命令安裝jq:
 
  復(fù)制
  [root@localhost ~]# dnf -y install jq
 
  
  語    法
  現(xiàn)在我們可以開始使用 JQ 命令,因?yàn)樗呀?jīng)成功安裝在我們的系統(tǒng)上,但首先,讓我們看一下 JQ 命令的語法:
 
  復(fù)制
  jq [options]  [file...]
  jq [options] --args  [strings...]
  jq [options] --jsonargs  [JSON_TEXTS...]
 
   JQ 命令可以用多種不同的方式使用;它可以直接用于 JSON 文件,也可以結(jié)合其他幾個(gè)命令來解釋 JSON 數(shù)據(jù)。JQ 命令可以與不同的過濾器一起使用,例如“.”、“|”、“,”或“.[]”過濾器來組織 JSON 數(shù)據(jù)。
 
  JQ 命令還采用不同的選項(xiàng)作為參數(shù),例如 --tab、--stream、--indent n、--unbuffered 和 -L 目錄選項(xiàng)。JQ 命令的語法乍一看可能很復(fù)雜,但閱讀整篇文章后您就會(huì)熟悉它。
 
  如何使用 JQ 命令組織 JSON 數(shù)據(jù)
  JQ 命令過濾器最簡單和常用的特性。它們用于在將 JSON 數(shù)據(jù)打印到標(biāo)準(zhǔn)輸出時(shí)對其進(jìn)行組織和美化。
 
  在這個(gè)例子中,我們有一個(gè)名為 employee.json 的 JSON 文件,我們需要將數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出:
 
  復(fù)制
  {"workers":{"name": "John Brooks","id": "003"}}
 
   我們可以使用 cat 命令來顯示數(shù)據(jù):
 
  復(fù)制
  [root@localhost ~]# cat employee.json  
  {"workers":{"name": "John Brooks","id": "003"}}
 
  
  使用 cat 命令打印到標(biāo)準(zhǔn)輸出的數(shù)據(jù)是無組織和混亂的。我們可以使用 JQ 命令和“.”來組織這些數(shù)據(jù),使用.來篩選:
 
  復(fù)制
  [root@localhost ~]# jq '.' employee.json  
  {
    "workers": {
      "name": "John Brooks",
      "id": "003"
    }
  }
  
 
  現(xiàn)在,數(shù)據(jù)變得更有條理、色彩豐富且更易于理解。從 API 訪問數(shù)據(jù)時(shí)尤其需要此過濾器;API 中存儲(chǔ)的數(shù)據(jù)可能非常無組織且令人困惑。
 
  如何使用 JQ 命令訪問屬性
  .字段過濾器和 JQ 命令可用于訪問 shell 中的對象屬性。
 
  如果我們只想訪問單個(gè)屬性并將其打印到標(biāo)準(zhǔn)輸出,那么我們可以使用.字段運(yùn)算符。例如,要訪問工人的屬性,我們可以使用以下命令:
 
  復(fù)制
  [root@localhost ~]# jq '.workers' employee.json  
  {
    "name": "John Brooks",
    "id": "003"
  }
  
  我們還可以使用.字段運(yùn)算符訪問屬性中存在的項(xiàng)目。要訪問工人屬性中的名稱項(xiàng),我們將使用:
 
  復(fù)制
  [root@localhost ~]# jq '.workers.name' employee.json  
  "John Brooks"
  
 
  如何使用 JQ 命令訪問數(shù)組項(xiàng)
  我們還可以使用 .[] 運(yùn)算符訪問和輸出 JSON 文件中數(shù)組中存在的元素。對于這個(gè)例子,我們將修改我們的 JSON 文件,添加下面內(nèi)容:
 
  復(fù)制
  [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
   查看一下employee.json文件:
 
  復(fù)制
  [root@localhost ~]# cat employee.json  
  [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
 
  
 
  要輸出 JSON 文件中存在的所有數(shù)組,我們將運(yùn)行以下命令:
 
  復(fù)制
  [root@localhost ~]# jq '.[]' employee.json  {
    "name": "John Brooks",
    "id": "003"
  }
  {
    "name": "Randy Park",
    "id": "053"
  }
  {
    "name": "Todd Gray",
    "id": "009"
  }
 
  
 
  要僅輸出第二個(gè)數(shù)組,我們可以通過以下方式修改上述命令:
 
  復(fù)制
  [root@localhost ~]# jq '.[1]' employee.json  
  {
    "name": "Randy Park",
    "id": "053"
  }
 
  
 
  請記住,數(shù)組從索引 0 開始的。
 
  我們還可以使用 .字段 運(yùn)算符訪問數(shù)組中存在的屬性。例如,如果我們想訪問第三個(gè)數(shù)組中的 name 屬性,那么我們將運(yùn)行以下命令:
 
  復(fù)制
  [root@localhost ~]# jq '.[2].name' employee.json  
  "Todd Gray"
  
 
  類似地,要訪問數(shù)組中的所有名稱屬性,我們可以執(zhí)行以下命令:
 
  復(fù)制
  [root@localhost ~]# jq '.[].name' employee.json  
  "John Brooks"
  "Randy Park"
  "Todd Gray"
 

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 杭州市| 宣城市| 崇仁县| 遂溪县| 康保县| 腾冲县| 唐海县| 兴业县| 禄劝| 大兴区| 鄂托克前旗| 金乡县| 宁晋县| 张家川| 道真| 元朗区| 油尖旺区| 桑植县| 巴彦淖尔市| 金门县| 德令哈市| 禹城市| 武功县| 孝义市| 凤台县| 平邑县| 滁州市| 华安县| 驻马店市| 新丰县| 灵宝市| 五华县| 扬州市| 安义县| 富民县| 平顶山市| 和林格尔县| 沅江市| 桂林市| 长宁县| 大厂|