jq 簡單使用

Undefined443發表於2024-10-09

jq 官網

  1. 簡單提取
    假設你有一個 JSON 檔案 data.json,其內容如下:

    {
      "name": "Alice",
      "age": 30,
      "city": "New York"
    }
    

    要提取 "name" 的值,可以使用:

    jq '.name' data.json
    
  2. 巢狀提取
    對於巢狀的 JSON 資料,例如:

    {
      "person": {
        "name": "Alice",
        "age": 30
      }
    }
    

    你可以使用點表示法提取巢狀的值:

    jq '.person.name' data.json
    
  3. 過濾陣列
    假設你有一個包含物件陣列的 JSON 檔案:

    [
      {"name": "Alice", "age": 30},
      {"name": "Bob", "age": 25},
      {"name": "Charlie", "age": 35}
    ]
    

    要過濾出年齡大於 30 的人,可以使用:

    jq '.[] | select(.age > 30)' data.json
    
  4. 搜尋特定值
    如果你想查詢特定的值,例如查詢名字是 "Bob" 的人:

    jq '.[] | select(.name == "Bob")' data.json
    
  5. 複雜查詢
    使用邏輯運算子進行更復雜的查詢。例如,查詢年齡在 25 到 35 之間的人:

    jq '.[] | select(.age >= 25 and .age <= 35)' data.json
    
  6. 輸出格式化
    jq 預設會格式化輸出,如果你只想要原始的 JSON 字串,可以使用 -c 選項:

    jq -c '.[] | select(.age > 30)' data.json
    

透過這些基本命令,你可以在 JSON 資料中進行有效的搜尋和過濾。jq 還有更多高階功能和選項,可以根據需要查閱其文件進行深入學習。