颠簸 - 在同一级别添加时合并值的问题
Jolt - issue with combined values when added at same level
我刚开始使用 jolt
当前面临合并地图数组的问题。
我有一个映射数组,每个映射中的 1 个键都有一个字符串数组 - 如输入 JSON 所示。
我正在尝试将所有 key/values 组合成一个地图数组 -
如预期输出所示
组合时,值会合并而不是单独添加。
感谢任何帮助。
输入JSON
{
"items": [
{
"frontItem": [
"frontItem1"
],
"base": "base1"
},
{
"frontItem": [
"frontItem2",
"frontItem3"
],
"base": "base2"
}
]
}
Jolt 规范已创建
[
{
"operation": "shift",
"spec": {
"items": {
"*": {
"frontItem": {
"*": {
"@": "modified-items.[&].frontItem",
"@(2,base)": "modified-items.[&].base"
}
}
}
}
}
}
]
预期输出
{
"modified-items": [
{
"frontItem": "frontItem1",
"base": "base1"
},
{
"frontItem": "frontItem2",
"base": "base2"
},
{
"frontItem": "frontItem3",
"base": "base2"
}
]
}
创建规范后的当前输出
{
"modified-items": [
{
"frontItem": [
"frontItem1",
"frontItem2"
],
"base": [
"base1",
"base2"
]
},
{
"frontItem": "frontItem3",
"base": "base2"
}
]
}
您离找到解决方案很近了。在遍历 frontItem
列表的索引时,只需将值分隔 @(3,base)
例如
[
{
"operation": "shift",
"spec": {
"items": {
"*": {
"frontItem": {
"*": {
"@": "@(3,base).[&].frontItem",
"@(2,base)": "@(3,base).[&].base"
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": ""
}
}
}
]
网站上的演示http://jolt-demo.appspot.com/
我刚开始使用 jolt
当前面临合并地图数组的问题。
我有一个映射数组,每个映射中的 1 个键都有一个字符串数组 - 如输入 JSON 所示。
我正在尝试将所有 key/values 组合成一个地图数组 - 如预期输出所示
组合时,值会合并而不是单独添加。
感谢任何帮助。
输入JSON
{
"items": [
{
"frontItem": [
"frontItem1"
],
"base": "base1"
},
{
"frontItem": [
"frontItem2",
"frontItem3"
],
"base": "base2"
}
]
}
Jolt 规范已创建
[
{
"operation": "shift",
"spec": {
"items": {
"*": {
"frontItem": {
"*": {
"@": "modified-items.[&].frontItem",
"@(2,base)": "modified-items.[&].base"
}
}
}
}
}
}
]
预期输出
{
"modified-items": [
{
"frontItem": "frontItem1",
"base": "base1"
},
{
"frontItem": "frontItem2",
"base": "base2"
},
{
"frontItem": "frontItem3",
"base": "base2"
}
]
}
创建规范后的当前输出
{
"modified-items": [
{
"frontItem": [
"frontItem1",
"frontItem2"
],
"base": [
"base1",
"base2"
]
},
{
"frontItem": "frontItem3",
"base": "base2"
}
]
}
您离找到解决方案很近了。在遍历 frontItem
列表的索引时,只需将值分隔 @(3,base)
例如
[
{
"operation": "shift",
"spec": {
"items": {
"*": {
"frontItem": {
"*": {
"@": "@(3,base).[&].frontItem",
"@(2,base)": "@(3,base).[&].base"
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": ""
}
}
}
]
网站上的演示http://jolt-demo.appspot.com/