[英]jq: join string array whether it is empty or not
我有一個 JSON test.json
如下:
[
{
"a": "a",
"b": [
"a",
"b",
"c"
]
},
{
"a": "a"
}
]
我想加入每個條目的字段b
並處理其空的情況:
{ "a": "a",
"b": "a, b, c"
},
{
"a": "a",
"b": null
}
以下命令有效...
cat test.json |
jq '.[] | .b as $t | if $t then {a: .a, b: $t | join(", ")} else {a: .a, b: $t} end'
...但它太長了,因為我必須寫兩次幾乎相同的構造函數。
我試圖在{}
構造中移動if-then-else
條件甚至//
運算符,但它們會導致語法錯誤。
根據您要如何處理null
/ empty
值,您可以嘗試以下方法:
map(.b |= (. // [] | join(", ")))
map(if .b then .b |= join(", ") else . end)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.