假设我有这个 json:
[
{
"first": 12355,
"second": "abc"
},
{
"first": 89010,
"second": "def"
},
{
"first": 23423,
"second": "hij"
},
{
"first": 23456,
"second": "klm"
},
{
"first": 11111,
"second": "nop"
}
]
我希望(一种通用形式)将它们合并为 1 个对象,其中每个键的值合并到相应值的数组中:
{
"first" : [12355,89010,23423,23456,11111],
"second" : ["abc","def","hij","klm","nop"]
}
我正在尝试这个,但它根本没有产生任何输出。
reduce .[] as $final (
{};
((. | keys) as $k |
map(
( (.[$k] // []) += ($final[$k] // []))
)
)
)
我将使用
to_entries
(访问键和值)作为迭代的一部分:演示
group_by
以下是将匹配的项放在一起的另一种方法:演示
输出:
或者为了简单起见,考虑使用
transpose
,例如