У меня есть строка json, например:
{
"name" : "test",
"properties": {
"p2": {"test": "test", "value": "b"},
"p1": {"value": "a"},
"p3": {"value": "c"}
}
}
, и я хочу:
{
"p2" : "b",
"p1" : "a",
"p3" : "c"
}
, и порядок не имеет значения, но отношение ключей и значений должно быть таким же, как origin.
Я попытался jq '.properties | (keys_unsorted, .[].value)'
, и это дает:
[
"p2",
"p1",
"p3"
]
"b"
"a"
"c"
, затем я разделил команду на jq '.properties | keys_unsorted'
и jq '.properties | .[].value'
, выполнил некоторое редактирование руками, и используйте команду paste
для объединения результатов.
Существует ли более разумный способ?