如何使用 jq 将对象数组转换为单独的键值列表 - 输出特定键值而不是数组索引

How to use jq to transform array of objects into separated list of key values - Outputing specific key value instead of array index

这与我之前的问题有关:

我如何(一般地)将下面的输入文件转换为下面的输出文件,使用 jq.键“id”处的值唯一标识数组元素。输出文件的记录格式为:(value at key "id") |钥匙 |值。

如果我将 awk 添加到上一个问题的解决方案中,我可以做到这一点,但我无法在 jq 中解决所有问题。

输入文件:

[{"id": 11, "b": 100},
 {"id": 12, "d": "fred", "e": 300}]

输出文件:

11|id|11
11|b|100
12|id|12
12|d|fred
12|e|300

这是一个使用 to_entries 的解决方案,它将对象分解为 key-value 对数组:

jq -r '.[] | .id as $id | to_entries[] | [$id,.key,.value] | join("|")'
11|id|11
11|b|100
12|id|12
12|d|fred
12|e|300