我尝试使用JOLT
将一个对象数组转换为输出JSON而不使用包装密钥。
INPUT
{
"emps": [
{
"emp": {
"empId": "2A68",
"emailAddress": "abc@xyz.com",
"name": "abc",
"userId": "82869",
"userType": "none",
"phoneNumber": "1234",
"rank": "2"
}
}
]
}
SPEC I TRIED
[
{
"operation": "shift",
"spec": {
"emps": {
"*": {
"empId": "data.result[&1].emps[&1].empId",
"name": "data.result[&1].emps[&1].name",
"phoneNumber": "data.result[&1].emps[&1].phone",
"emailAddress": "data.result[&1].emps[&1].email"
}
}
}
},
{
"operation": "default",
"spec": {
"data": {
"result[]": {
"*": {
"emps[]": []
}
}
}
}
}
]
预期输出
{
"data" : {
"result" : [ {
"emps" : [ {
"empId" : "2A68",
"name" : "abc",
"phone" : "1234",
"email" : "abc@xyz.com"
} ]
} ]
}
}
请复制并粘贴以上INPUT
和OUTPUT
here
如果我从输入中删除emp
包装器,那么它的工作正常,但是没有得到如何使用emp
包装器获得相同的输出。
任何帮助表示感谢。
答案 0 :(得分:2)
规格
必须先进行第一次轮班,然后逐步进入" emps",数组,然后进行" emp"对象
[
{
"operation": "shift",
"spec": {
"emps": {
"*": {
"emp": {
"empId": "data.result[0].emps[&2].empId",
"name": "data.result[0].emps[&2].name",
"phoneNumber": "data.result[0].emps[&2].phone",
"emailAddress": "data.result[0].emps[&2].email"
}
}
}
}
},
{
"operation": "default",
"spec": {
"data": {
"result[]": {
"*": {
"emps[]": []
}
}
}
}
}
]