如示例输入所示,我在每个对象中都有一个扩展数组。如果扩展名不包含subscription-type
,则输出应为null,如输出所示,否则应包含现有值。同样适用于language-type
。 subscription-type
和language-type
的顺序本质上是随机的。
我已经尝试过规格,但无法正常工作
{
"operation": "modify-define-beta",
"spec": {
"*": {
"subscriptionType": {
"url": {
"myCoercedValue": "subscription-type",
"myStringValue": "subscription-type"
},
"value": {
"myCoercedValue": null,
"myStringValue": null
}
},
"languageType": {
"url": {
"myCoercedValue": "language-type",
"myStringValue": "language-type"
},
"value": {
"myCoercedValue": null,
"myStringValue": null
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"extension": "[&1].extension",
"subscriptionType": "[&1].extension[]",
"languageType": "[&1].extension[]"
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"extension": {
"*": {
"@url": {
"myStringValue": {
"subscription-type": {
"@(3,value.myStringValue)": "[&3].subscriptionType[]"
}
}
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"0": "[]"
}
}
]
输入:
[
{
"extension": []
},
{
"extension": [
{
"url": {
"myCoercedValue": "subscription-type",
"myStringValue": "subscription-type"
},
"value": {
"myCoercedValue": "free",
"myStringValue": "free"
},
"extension": []
}
]
},
{
"extension": [
{
"url": {
"myCoercedValue": "language-type",
"myStringValue": "language-type"
},
"value": {
"myCoercedValue": "en-us",
"myStringValue": "en-us"
}
},
{
"url": {
"myCoercedValue": "subscription-type",
"myStringValue": "subscription-type"
},
"value": {
"myCoercedValue": "free",
"myStringValue": "free"
}
}
]
}
]
输出:
[ {
"subscriptionType" : [ null, "free", "free" ],
"language":[null,null,"en-US"]
} ]
答案 0 :(得分:2)
也许您想获得这样的结果?请尝试这些规格并说出您要修改的内容。
[
{
"operation": "shift",
"spec": {
"*": {
"extension": {
"*": {
"url": {
"myCoercedValue": {
"subscription-type": {
"@(3,value)": {
"myCoercedValue": "subscriptionType[#8]"
}
},
"language-type": {
"@(3,value)": {
"myCoercedValue": "language[#8]"
}
}
}
}
}
}
}
}
}
]