将对象列表转换为数组
Converting a list of objects to an array
假设我有一个对象列表:
{
"alpha": {
"bytes": {
"value": 4789440
},
"doc_count": 7723
},
"beta": {
"bytes": {
"value": 4416862639
},
"doc_count": 1296
}
}
有没有办法使用 jq
来得到这个的数组表示,例如:
[
{
"key": "alpha",
"bytes": {
"value": 4789440
},
"doc_count": 7723
},
{
"key": "beta",
"bytes": {
"value": 4416862639
},
"doc_count": 1296
}
]
使用 to_entries
是一种方法。通过访问 .key
和 .value
,组合将是:
jq '[to_entries[] | {key} + .value]' input.json
[
{
"key": "alpha",
"bytes": {
"value": 4789440
},
"doc_count": 7723
},
{
"key": "beta",
"bytes": {
"value": 4416862639
},
"doc_count": 1296
}
]
[ keys_unsorted[] as $key | { $key } + .[$key] ]
Demo 在 jqplay
或
to_entries | map( { key } + .value )
Demo 在 jqplay
假设我有一个对象列表:
{
"alpha": {
"bytes": {
"value": 4789440
},
"doc_count": 7723
},
"beta": {
"bytes": {
"value": 4416862639
},
"doc_count": 1296
}
}
有没有办法使用 jq
来得到这个的数组表示,例如:
[
{
"key": "alpha",
"bytes": {
"value": 4789440
},
"doc_count": 7723
},
{
"key": "beta",
"bytes": {
"value": 4416862639
},
"doc_count": 1296
}
]
使用 to_entries
是一种方法。通过访问 .key
和 .value
,组合将是:
jq '[to_entries[] | {key} + .value]' input.json
[
{
"key": "alpha",
"bytes": {
"value": 4789440
},
"doc_count": 7723
},
{
"key": "beta",
"bytes": {
"value": 4416862639
},
"doc_count": 1296
}
]
[ keys_unsorted[] as $key | { $key } + .[$key] ]
Demo 在 jqplay
或
to_entries | map( { key } + .value )
Demo 在 jqplay