我试图重塑一个json文档,我认为使用jq很容易,但我现在已经尝试了好几个小时但没有成功......
(请注意,我不是jq jedi且文档没有帮助)
我想离开这个:
{
"results": [
{
"profile": {
"birthYear": 1900,
"locale": "en_EN",
"city": "Somewhere, Around",
"timezone": "2",
"age": 52,
"gender": "m"
},
"UID": "SQSQSQerl7XSQSqSsqSQ"
}
]
}
到此:
{
"birthYear": 1900,
"locale": "en_EN",
"city": "Somewhere, Around",
"timezone": "2",
"age": 52,
"gender": "m",
"UID": "SQSQSQerl7XSQSqSsqSQ"
}
我使用此过滤器得到以下内容: .results [] .profile,.results []。UID
{
"birthYear": 1900,
"locale": "en_EN",
"city": "Somewhere, Around",
"timezone": "2",
"age": 52,
"gender": "m"
}
"UID": "SQSQSQerl7XSQSqSsqSQ"
先谢谢你的帮助..
答案 0 :(得分:5)
您可以使用加法运算符组合两个对象。
jq '.results[] | .profile + {UID}'
.profile已经是一个对象了。
使用{}创建另一个对象。 {UID}是{“UID”的缩写:.UID}
答案 1 :(得分:1)
可能有更好的方法但是你去了
jq '.results[0].profile * .results[0] | del(.profile)'
说明:
通过A * B
将recursivly容器与嵌套容器合并,然后通过管道传递到del(
以删除嵌套容器