给定以下 JSON:
{
"alice": { "items": ["foo", "bar"] },
"bob": { "items": ["bar", "foo"] },
"charlie": { "items": ["foo", "bar"] }
}
我可以排序items
数组如下:
$ jq < users.json 'map(.items |= sort)'
[
{
"items": [
"bar",
"foo"
]
},
{
"items": [
"bar",
"foo"
]
},
{
"items": [
"bar",
"foo"
]
}
]
但是,如果任何用户没有items
:
{
"alice": { "items": ["foo", "bar"] },
"bob": { "items": ["bar", "foo"] },
"charlie": {}
}
尝试对其进行排序会出错。
$ jq < users.json 'map(.items |= sort)'
jq: error (at <stdin>:5): null (null) cannot be sorted, as it is not an array
我怎样才能获得以下内容?
$ jq < users.json SOMETHING
[
{
"items": [
"bar",
"foo"
]
},
{
"items": [
"bar",
"foo"
]
},
{
"items": [
]
}
]
我尝试过使用// []
但我不确定如何执行与排序相关的操作。