[英]jq: Map from nested JSON
我有以下 JSON:
{
"A": {
"type": "string",
"value": "value_A"
},
"B": {
"type": "string",
"value": "value_B"
}
}
...並嘗試使用 JQ 來產生以下結果:
所需 Output
{
"A": "value_A",
"B": "value_B"
}
...其中鍵采用node.value
的直接值。
我目前的嘗試:
.[] | {value}
...返回以下內容:
{
"value": "value_A"
}
{
"value": "value_B"
}
如何使用 JQ 生產所需的 JSON?
with_entries
幫助:
with_entries(.value |= .value)
to_entries | map(.value |=.value) | from_entries
to_entries | map(.value |=.value) | from_entries
to_entries
將形式為{a:b}
的 object 轉換為形式為[{key:a, value:b}]
的數組,因此在您的示例中:
{
"key": "A",
"value": {
"type": "string",
"value": "value_A"
}
}
.value |=.value
然后將.value.value
的內容分配給.value
,留下:
{
"key": "A",
"value": "value_A"
}
然后由 from_entries 再次轉換為from_entries
(從上面重復: with_entries(f)
等效於from_entries|map(f)|from_entries
)
使用 function map_values()
:
map_values(.value)
它運行作為參數傳遞給輸入 object 的每個值的過濾器,收集結果並將它們與輸入 object 的鍵相關聯,並返回 object。
上網查一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.