Jolt Transform JSON 数组输入规范
Jolt Transform JSON Spec for Array Input
我正在尝试使用以下规格进行 JOLT 换档操作,但无法正常工作。不确定我犯了什么错误。在这种情况下需要帮助。输出 JSON 作为对象而不是 Array 出现,shift 也没有按预期工作。
Input : [
{
"Header": {
"Number": 1,
"Id": "JO"
},
"Name": "John"
},
{
"Header": {
"Number": 2,
"Id": "JS"
},
"Name": "Justin"
}
]
Spec : [
{
"operation": "shift",
"spec": {
"*": {
"Header": "Header",
"Name": "Header.Name"
}
}
}
]
Expected Output : [
{
"Header": {
"Number": 1,
"Id": "JO",
"Name": "John"
}
},
{
"Header": {
"Number": 2,
"Id": "JS",
"Name": "Justin"
}
}
]
Actual Output : {
"Header" : [ {
"Number" : 1,
"Id" : "JO",
"Name" : "John"
}, {
"Number" : 2,
"Id" : "JS"
} ]
}
您还必须指定 "Header"
对象是 inside the array。
此外,数组的索引,您为数组的每个元素放置 "Header"
对象。
这就是下面的规范所做的(使用 [&1]
- apmersand wildcard 与数组结合):
[
{
"operation": "shift",
"spec": {
"*": {
"Header": "[&1].Header",
"Name": "[&1].Header.Name"
}
}
}
]
来源:
- Shiftr.java javadocs:
- 其他答案:
- Demo application linked in the jolt repo 测试规范
我正在尝试使用以下规格进行 JOLT 换档操作,但无法正常工作。不确定我犯了什么错误。在这种情况下需要帮助。输出 JSON 作为对象而不是 Array 出现,shift 也没有按预期工作。
Input : [
{
"Header": {
"Number": 1,
"Id": "JO"
},
"Name": "John"
},
{
"Header": {
"Number": 2,
"Id": "JS"
},
"Name": "Justin"
}
]
Spec : [
{
"operation": "shift",
"spec": {
"*": {
"Header": "Header",
"Name": "Header.Name"
}
}
}
]
Expected Output : [
{
"Header": {
"Number": 1,
"Id": "JO",
"Name": "John"
}
},
{
"Header": {
"Number": 2,
"Id": "JS",
"Name": "Justin"
}
}
]
Actual Output : {
"Header" : [ {
"Number" : 1,
"Id" : "JO",
"Name" : "John"
}, {
"Number" : 2,
"Id" : "JS"
} ]
}
您还必须指定 "Header"
对象是 inside the array。
此外,数组的索引,您为数组的每个元素放置 "Header"
对象。
这就是下面的规范所做的(使用 [&1]
- apmersand wildcard 与数组结合):
[
{
"operation": "shift",
"spec": {
"*": {
"Header": "[&1].Header",
"Name": "[&1].Header.Name"
}
}
}
]
来源:
- Shiftr.java javadocs:
- 其他答案:
- Demo application linked in the jolt repo 测试规范