在JQ 1.4…中输入
{
"key x": {
"b": "1"
},
"key y": {
"b": "1"
}
}
应在每个具有顶级键名称的顶级键下添加新的嵌套对象。所以结果看起来像
{
"key x": {
"a": "key x",
"b": "1"
},
"key y": {
"a": "key y",
"b": "1"
}
}
但是没有直接使用密钥名称(例如,"key x".a="key x"),因为在运行时我不知道真正的密钥名称。
一个简单的答案是:
with_entries(.value.a = .key)
是的,找到了解决方案:
to_entries | map( {(.key): ({a: .key}+.value)} ) | add
将返回
{
"key x": {
"a": "key x",
"b": "1"
},
"key y": {
"a": "key y",
"b": "1"
}
}
to_entries拆分为键/值对,这样更容易访问每个键并通过新对象扩展其值。