簡體   English   中英

如何在jq中檢查null或為空,並在jq轉換中替換為空字符串

[英]How to check for null or empty in jq and substitute for empty string in jq transformation

如何在jq中檢查null或為空,並在jq轉換中替換為空字符串。

JSON下面的示例,這是JQ

JQ:

   .amazon.items[] | select(.name | contains ("shoes")) as $item |
   {
        activeItem: .amazon.activeitem,
        item : {
         id : $item.id,
         state : $item.state,
         status : if [[ $item.status = "" or $item.status = null ]]; 
        then 'IN PROCESS' ; else $item.status end
         }  
   }

JSON:

  {
    "amazon": {
      "activeitem": 2,
      "items": [
        {
          "id": 1,
          "name": "harry potter",
          "state": "sold"
        },
        {
          "id": 2,
          "name": "adidas shoes",
          "state": "in inventory"
        },
        {
          "id": 3,
          "name": "watch",
          "state": "returned"
        },{
          "id": 4,
          "name": "Nike shoes",
          "state": "in inventory"
        }
      ]
    }
  } 

如果狀態為空或為空,我想添加默認字符串“處理中”。

根據項目條件,使用以下查詢,並從過濾的結果中獲取第一個對象。

code .amazon.items [] | select(.name |包含(“鞋子”)) code

預期產量:

{
    "activeitem": 2,
    "item": {
      "id": 2,
      "name": "adidas shoes",
      "state": "in inventory",
      "status": "IN PROCESS"
    }
  }

這里的關鍵是使用|=

.amazon.item.status |=
  if . == null or . == ""
  then "IN PROCESS"
  else .
  end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM