我试图用不同的输入值组合构建一个名为catalogs的对象数组,但不能在同一个对象中设置某些属性.这是当前的进展:
[
{
"operation": "shift",
"spec": {
"new": {
"bc_sku_channel": {
"*": {
"Partner": null, //ignore if value is Partner
"*": {
"#BC": "catalogs[#3].catalog",
"@1": "catalogs[#3].channel"
}
}
},
"bc_sku_partner": {
"*": {
"#BC": "catalogs[].catalog", // don't know which index should be here to group these 3 attributes into the same object
"#Partner": "catalogs[].channel", // tried #3,#2,#1,#4 but doesn't work
"@": "catalogs[].partner"
}
},
"cc_sku_channel": {
"*": {
"Partner": null, //ignore if value is Partner
"*": {
"#CC": "catalogs[#3].catalog",
"@1": "catalogs[#3].channel"
}
}
}
}
}
}
]
输入:
{
"new": {
"bc_sku_partner": [
"Amazon",
"Ebay"
],
"bc_sku_channel": [
"Partner",
"Online",
"Store"
],
"cc_sku_channel": [
"Store"
]
}
}
预期输出:
{
"catalogs": [
{
"catalog": "BC",
"channel": "Partner",
"partner": "Amazon"
},
{
"catalog": "BC",
"channel": "Partner",
"partner": "Ebay"
},
{
"catalog": "BC",
"channel": "Online"
},
{
"catalog": "BC",
"channel": "Store"
},
{
"catalog": "CC",
"channel": "Store"
}
]
}
现在我只能构建最后3个对象.
笔记:
如果通道为Online或Store,则对象不应具有partner属性.
对于每个合作伙伴,通道属性应始终为Partner