如何从 JOLT 中的数组中获取值,并将它们放入对象值数组中
How to take values from an array in JOLT, put them into an array of object values
输入
{
"field1": {
"array1": [
"a",
"b"
],
"array2": [
"c",
"d"
]
}
}
我想要输出:
{
"objectArray": [
{
"role": "to",
"id": "a"
},
{
"role": "to",
"id": "b"
},
{
"role": "to",
"id": "c"
},
{
"role": "to",
"id": "d"
}
]
}
我目前正在尝试:
[
{
"operation": "shift",
"spec": {
"field1": {
"array1": {
"#to": "objectArray[].role",
"@": "objectArray[].id"
},
"array2": {
"#to": "objectArray[].role",
"@": "objectArray[].id"
}
}
}
}
]
然而,这似乎将角色和 ID 分离到它们自己单独的对象中,在第一个对象之后。
您可以使用 shift 转换规范的这两个步骤。
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"*": "o[].id"
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": {
"*": "objectArray[&1].&",
"#to": "objectArray[&1].role"
}
}
}
}
]
你在第一步中获得了所有 ID 的数组,然后在重命名目标数组的同时在第二步中添加了任意选择的键值对
输入
{
"field1": {
"array1": [
"a",
"b"
],
"array2": [
"c",
"d"
]
}
}
我想要输出:
{
"objectArray": [
{
"role": "to",
"id": "a"
},
{
"role": "to",
"id": "b"
},
{
"role": "to",
"id": "c"
},
{
"role": "to",
"id": "d"
}
]
}
我目前正在尝试:
[
{
"operation": "shift",
"spec": {
"field1": {
"array1": {
"#to": "objectArray[].role",
"@": "objectArray[].id"
},
"array2": {
"#to": "objectArray[].role",
"@": "objectArray[].id"
}
}
}
}
]
然而,这似乎将角色和 ID 分离到它们自己单独的对象中,在第一个对象之后。
您可以使用 shift 转换规范的这两个步骤。
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"*": "o[].id"
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": {
"*": "objectArray[&1].&",
"#to": "objectArray[&1].role"
}
}
}
}
]
你在第一步中获得了所有 ID 的数组,然后在重命名目标数组的同时在第二步中添加了任意选择的键值对