Jolt - 如何将两个数组转换为键值并保留其他单曲属性
Jolt - How to convert two arrays to key value and keep other singles properties
我有一个 JSON,其中包含两个我需要转换为键/值对的数组。数组上的这些键是动态的,可以更改。
为此,我正在尝试创建一个 Jolt 规范以将我的输入数据转换为以下格式。
JSON 输入:
{
"data": [
{
"property1": "AA",
"property2": "BB",
"keys": [
"key1",
"key2",
"key3"
],
"values": [
"value1",
"value2",
"value3"
]
},
{
"property1": "CC",
"property2": "DD",
"keys": [
"key4",
"key5"
],
"values": [
"value4",
"value5"
]
}
]
}
期望的输出:
[
{
"property1": "AA",
"property2": "BB",
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
{
"property1": "CC",
"property2": "DD",
"key4": "value4",
"key5": "value5"
}
]
我的规格:
[
{
"operation": "shift",
"spec": {
"data": {
"*": {
"values": {
"*": {
"@": "[&3].@(3,keys[&1])"
}
}
}
}
}
}
]
我的规格输出:
[
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
{
"key4": "value4",
"key5": "value5"
}
]
但我无法正确地包含所需输出中的简单属性(property1 和 property2)。
提前致谢
[
{
"operation": "shift",
"spec": {
"data": {
"*": {
"property1": "[&1].property1",
"property2": "[&1].property2",
"values": {
"*": {
"@": "[&3].@(3,keys[&1])"
}
}
}
}
}
}
]
确实,您确实将动态元素极大地分组为键值对,但您只是错过了 property1 和 property2 字段到输出的位置映射。
我有一个 JSON,其中包含两个我需要转换为键/值对的数组。数组上的这些键是动态的,可以更改。
为此,我正在尝试创建一个 Jolt 规范以将我的输入数据转换为以下格式。
JSON 输入:
{
"data": [
{
"property1": "AA",
"property2": "BB",
"keys": [
"key1",
"key2",
"key3"
],
"values": [
"value1",
"value2",
"value3"
]
},
{
"property1": "CC",
"property2": "DD",
"keys": [
"key4",
"key5"
],
"values": [
"value4",
"value5"
]
}
]
}
期望的输出:
[
{
"property1": "AA",
"property2": "BB",
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
{
"property1": "CC",
"property2": "DD",
"key4": "value4",
"key5": "value5"
}
]
我的规格:
[
{
"operation": "shift",
"spec": {
"data": {
"*": {
"values": {
"*": {
"@": "[&3].@(3,keys[&1])"
}
}
}
}
}
}
]
我的规格输出:
[
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
{
"key4": "value4",
"key5": "value5"
}
]
但我无法正确地包含所需输出中的简单属性(property1 和 property2)。
提前致谢
[
{
"operation": "shift",
"spec": {
"data": {
"*": {
"property1": "[&1].property1",
"property2": "[&1].property2",
"values": {
"*": {
"@": "[&3].@(3,keys[&1])"
}
}
}
}
}
}
]
确实,您确实将动态元素极大地分组为键值对,但您只是错过了 property1 和 property2 字段到输出的位置映射。