Json 逐子元素查找元素并替换为子元素';s值
为了清楚起见,我有一个JSON数组,它是我想要转换为不同结构的结构Json 逐子元素查找元素并替换为子元素';s值,json,jq,Json,Jq,为了清楚起见,我有一个JSON数组,它是我想要转换为不同结构的结构 [ { "a": 1, "b": 2, "c": { "d": 3 }, "e": { "f": 4, "g": { "d": 8 } } }, { "a": 5, "b": 6, "c": { "d": 7 } }, { "a": 9,
[
{
"a": 1,
"b": 2,
"c": {
"d": 3
},
"e": {
"f": 4,
"g": {
"d": 8
}
}
},
{
"a": 5,
"b": 6,
"c": {
"d": 7
}
},
{
"a": 9,
"b": 10,
"c": {
"d": 11
},
"e": {
"f": 12,
"g": {
"d": 13
}
}
}
]
我想将其转换为:
[
{
"a": 1,
"b": 2,
"c": 3,
"e": {
"f": 4,
"g": 8
}
},
{
"a": 5,
"b": 6,
"c": 7
},
{
"a": 9,
"b": 10,
"c": 11,
"e": {
"f": 12,
"g: 13
}
}
]
因此,每一个元素的形式:
"c": {
"d": 3
}
我想转换为:
"c": 3
可以保证JSON在根对象中没有“d”元素
我试过了
jq \
'map(
with_entries(
.value = if .value."$oid" ? then "ObjectId(" + .value."$oid"+ ")" else .value end
)
)'
但它对内部元素不起作用。稍作调整后,他在评论中发布的@hek2mgl链接上被接受的答案对你的情况来说就很好了
walk(if type == "object" and keys_unsorted == ["d"] then .d else . end)
检查以下内容: