我想要做的是在我的json中“遍历”,并为每个名为“base”的键添加一个键,该键是此键的完整“路径”。
这是我的JSON:
实际上,我已经实现了这个功能,但我只得到了一个子密钥:
{
"entity": {
"product": {
"att": {
"number_of_values": "Number of values"
},
"title": {
"base": ["product", "products", "pdt", "pdts"]
}
},
"rabbit": {
"att": {
"number_of_values": "Number of values"
},
"title": {
"base": ["rabbit", "rabbits"]
}
}
}
}
And I want a result like this :
{
"entity": {
"product": {
"att": {
"number_of_values": "Number of values"
},
"title": {
"base": ["product", "products", "pdt", "pdts"],
"path": "entity.product.title"
}
},
"rabbit": {
"att": {
"number_of_values": "Number of values"
},
"title": {
"base": ["rabbit", "rabbits"]
"path": "entity.rabbit.title"
}
}
}
}
实际上,我已经实现了这个功能,但我只得到了一个子密钥:
walk(if type == "object" and .base then keys[] as $k | .base |= {path: $k} else . end)
结果:
{
"entity": {
"product": {
"att": {
"number_of_values": "Number of values"
},
"title": {
"base": {
"path": "base"
}
}
},
"rabbit": {
"att": {
"number_of_values": "Number of values"
},
"title": {
"base": {
"path": "base"
}
}
}
}
}
我也尝试了这个:
walk(if type == "object" and .base then paths(..) as $v | .base |= {path: $v} else . end)
结果:
{
"entity": {
"product": {
"att": {
"number_of_values": "Number of values"
},
"title": {
"base": {
"path": [
"base",
3
]
}
}
},
"rabbit": {
"att": {
"number_of_values": "Number of values"
},
"title": {
"base": {
"path": [
"base",
1
]
}
}
}
}
}
非常感谢您的建议和专业知识!