JSON转换使用多个阵列的震动
我是JSON的新手。我有输入JSON,其中包括两个数组。第一(主要结果)包含两个供应商,另一个(bankDetailSet ->结果)具有供应商银行详细信息(密钥和帐户).ie供应商可以拥有多个帐户。在PUT中,每个供应商有两个帐户。我正在尝试使用JOLT,输出中,我能够获得供应商信息和银行(BSB和Account_number)。该问题是相应的供应商银行(BSB和Account_number)的详细信息错误。
-
输入 第一供应商(Chigo pvtlimited”) bankKey (9877988787& 89797879798)
第二个(UFCDD PVT Limited)具有 BankKey (652588887& 294454545) -
pvtlimited”)具有 bsb (9877988787& 652588887)
第二个(UFCDD Pvt Limited)具有 BSB (89797879798& 294454545)
问题是为什么在输出中互换了Bankey值(BSB) )。我已经粘贴了电流和预期输出
输入是:
{
"d": {
"results": [
{
"__metadata": {
"type": "Core vendor.Vendor"
},
"VendorNumber": "7779898",
"VendorName": "Chigo PvtLimited",
"BankDetailSet": {
"results": [
{
"__metadata": {
"type": "UFCDR Pvt Limited"
},
"BankKey": "9877988787",
"BankAccount": "987788798778879"
},
{
"__metadata": {
"type": "UFCDR Pvt Limited"
},
"BankKey": "89797879798",
"BankAccount": "564654456456465"
}
]
}
},
{
"__metadata": {
"type": "Alpha vendor.Vendor"
},
"VendorNumber": "987545",
"VendorName": "UFCDD Pvt Limited",
"BankDetailSet": {
"results": [
{
"__metadata": {
"type": "UFCDD.BankDetail"
},
"BankKey": "652588887",
"BankAccount": "66887454"
},
{
"__metadata": {
"type": "UFCDR Pvt Limited"
},
"BankKey": "294454545",
"BankAccount": "4578777"
}
]
}
}
]
}
}
spec 我尝试过:
[
{
"operation": "shift",
"spec": {
"d": {
"results": {
"*": {
"VendorNumber": "vendors.[&1].name",
"VendorName": "vendors.[&1].VendorName",
"BankDetailSet": {
"results": {
"*": {
"BankKey": "vendors[&1].Bank[&4].bsb",
"BankAccount": "vendors[&1].Bank[&4].account_number"
}
}
}
}
}
}
}
}
]
当前输出
{
"vendors": [{
"name": "7779898",
"VendorName": "Chigo PvtLimited",
"Bank": [{
"bsb": "9877988787",
"account_number": "987788798778879"
}, {
"bsb": "652588887",
"account_number": "66887454"
}]
}, {
"Bank": [{
"bsb": "89797879798",
"account_number": "564654456456465"
}, {
"bsb": "294454545",
"account_number": "4578777"
}],
"name": "987545",
"VendorName": "UFCDD Pvt Limited"
}]
}
和 预期输出
{
"vendors": [
{
"name": "7779898",
"VendorName": "Chigo PvtLimited",
"Bank": [
{
"bsb": "9877988787",
"account_number": "987788798778879"
},
{
"bsb": "89797879798",
"account_number": "564654456456465"
}
]
},
{
"name": "987545",
"VendorName": "UFCDD Pvt Limited",
"Bank": [
{
"bsb": "652588887",
"account_number": "66887454"
},
{
"bsb": "294454545",
"account_number": "4578777"
}
]
}
]
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以收集元素
“ vendornumber”
,“ vendorname”
和带有密钥名称“ bankdetailseens”
的对象,然后设置相对定位通配符,例如[& 1]
,[& 4]
在最外面“结果” array such as
the demo on the site http://jolt-demo.appspot.com/是

Edit : What you need within the last comments is just reverse of the previous one, eg. use
instead of
or literally use (as in your case)
such as
the demo is
You can collect the elements
"VendorNumber"
,"VendorName"
and the object with key name"BankDetailSet"
under common object notation, then set the relative positioning wildcards such as[&1]
,[&4]
to meet at the same level of indexes of the outermost"results"
array such asthe demo on the site http://jolt-demo.appspot.com/ is

Edit : What you need within the last comments is just reverse of the previous one, eg. use
instead of
or literally use (as in your case)
such as
the demo is
@ barbarosÖzhan,非常感谢您,以下一个正在产生所需的结果
。
{
“操作”:“ Shift”,
}, }
这是给出的
@ Barbaros Özhan, Thank you so much, below one is producing the required result..
[
{
"operation": "shift",
}
]