我想将给定的json转换成给定的格式,使用format:-
输入JSON
{
"dataType": "XYZ",
"payload": {
"Revision": 0,
"identifier2": {
"xyz": 215,
"version": 1,
"revision": 1,
"Type": 12
},
"timestamp": "2019-12-10T06:24:01.708Z",
"Currency": "SEK",
"identifier3": {
"xyz": 170,
"version": 1,
"revision": 5,
"Type": 40
}
},
"datatype1": "ABC"
}
**Output JSON:-**
{
"dataType": "XYZ",
"payload": {
"Revision": 0,
"identifier2": {
"xyz": 215,
"version": 1,
"revision": 1,
"Type": 12
},
"timestamp": "2019-12-10T06:24:01.708Z",
"Currency": {
"Value": "SEK",
"Domain": null
},
"identifier3": {
"xyz": 170,
"version": 1,
"revision": 5,
"Type": 40
}
},
"datatype1": "ABC"
}-我的规范:-
[
{
"operation": "shift",
"spec": {
"payload": {
"Currency": {
"*": {
"$": "&2.Value",
"@": "&2.Domain"
}
},
"*": "payload.&"
},
"*": ".&"
}
}
]当我使用这个规范时,它会将货币标签移出有效载荷。请告诉我如何正确地做它。我可以使用这个规范来分割货币,但它会从有效载荷标签中移出。
发布于 2020-01-01 13:58:25
您的映射规则&2,2.Value将2(货币)置于顶层,如果您将该映射规则更改为有效载荷。&2.Value或& at;2.Value,它将按预期将其置于有效载荷下。
我用demo演示网站测试了所有的颠簸规格
快速修复
带文字有效载荷
[
{
"operation": "shift",
"spec": {
"payload": {
"Currency": {
"*": {
"$": "payload.&2.Value",
"@": "payload.&2.Domain"
}
},
"*": "payload.&"
},
"*": ".&"
}
}
]通配符&3 (从当前位置上升3级):
[
{
"operation": "shift",
"spec": {
"payload": {
"Currency": {
"*": {
"$": "&3.&2.Value",
"@": "&3.&2.Domain"
}
},
"*": "payload.&"
},
"*": ".&"
}
}
]狂乱地摇晃
万一您的预期输入文档与您提供的示例JSON格式相同:
{
...
"payload": {
...
"Currency": "value"
...
}
...
}而且,您也不能期望payload.Currency的形式是:
...
"Currency": {
"key": "value",
"key1": "value1",
...
}
...您的最终目标是将payload.Currency的值映射到payload.Currency.Value,并将默认值null添加到payload.Currency.Value (如果为空),payload.Currency.Domain (根据示例输出)
然后,您可以考虑一种更直接/更简单的规范:
[
{
"operation": "shift",
"spec": {
"payload": {
"Currency": "&1.&.Value",
"*": "&1.&"
},
"*": "&"
}
},
{
"operation": "default",
"spec": {
"payload": {
"Currency": {
"Value": null,
"Domain": null
}
}
}
}
]https://stackoverflow.com/questions/59539893
复制相似问题