JOLT 转换修改覆盖 - 替换数组中的元素值
JOLT transformation modify overwrite - replace element value in array
我正在使用 JOLT 库对 json 值进行更改。
对于键值项,我找到了使用
的解决方案
"operation": "modify-overwrite-beta"
但是当涉及到编辑数组中的值时,我遇到了问题。
让我们举个例子 JSON:
{
"parentModule": [
{
"childModule": {
"arrayModule": [
"KK",
"VV"
]
}
}
]
}
我正在使用的规格
[
{
"operation": "modify-overwrite-beta",
"spec": {
"parentModule": {
"*": {
"childModule": {
"arrayModule": [
"TT",
"RR"
]
}
}
}
}
}
]
我想要的结果是数组被完全覆盖,但目前它只替换第一个值。
预期结果:
{
"parentModule": [
{
"childModule": {
"arrayModule": [
"TT",
"RR"
]
}
}
]
}
有什么办法可以:
- 完全覆盖数组?
- 有条件地更改值,例如如果 TT => 更改为 AB,否则如果 RR 比写 BB ?
谢谢
您可以使用 shift 转换和 #
运算符来表示新列表的固定元素值待创建。
对于第一个案例(如果我们有"arrayModule": ["KK", "VV"]
输入):
[
{
"operation": "shift",
"spec": {
"parentModule": {
"*": {
"childModule": {
"arrayModule": {
"#TT": "&4[&3].&2.&1[]",
"#RR": "&4[&3].&2.&1[]"
}
}
}
}
}
}
]
demo1 :
对于第二个(如果我们有"arrayModule": ["TT", "RR"]
输入):
[
{
"operation": "shift",
"spec": {
"parentModule": {
"*": {
"childModule": {
"arrayModule": {
"*": {
"TT": { "#AB": "&6[&5].&4.&3" },
"RR": { "#BB": "&6[&5].&4.&3" }
}
}
}
}
}
}
}
]
demo2 :
同时设置适当的 & 符号级别以分别在多个级别达到所需的键名称。
我正在使用 JOLT 库对 json 值进行更改。
对于键值项,我找到了使用
的解决方案"operation": "modify-overwrite-beta"
但是当涉及到编辑数组中的值时,我遇到了问题。
让我们举个例子 JSON:
{
"parentModule": [
{
"childModule": {
"arrayModule": [
"KK",
"VV"
]
}
}
]
}
我正在使用的规格
[
{
"operation": "modify-overwrite-beta",
"spec": {
"parentModule": {
"*": {
"childModule": {
"arrayModule": [
"TT",
"RR"
]
}
}
}
}
}
]
我想要的结果是数组被完全覆盖,但目前它只替换第一个值。
预期结果:
{
"parentModule": [
{
"childModule": {
"arrayModule": [
"TT",
"RR"
]
}
}
]
}
有什么办法可以:
- 完全覆盖数组?
- 有条件地更改值,例如如果 TT => 更改为 AB,否则如果 RR 比写 BB ?
谢谢
您可以使用 shift 转换和 #
运算符来表示新列表的固定元素值待创建。
对于第一个案例(如果我们有"arrayModule": ["KK", "VV"]
输入):
[
{
"operation": "shift",
"spec": {
"parentModule": {
"*": {
"childModule": {
"arrayModule": {
"#TT": "&4[&3].&2.&1[]",
"#RR": "&4[&3].&2.&1[]"
}
}
}
}
}
}
]
demo1 :
对于第二个(如果我们有"arrayModule": ["TT", "RR"]
输入):
[
{
"operation": "shift",
"spec": {
"parentModule": {
"*": {
"childModule": {
"arrayModule": {
"*": {
"TT": { "#AB": "&6[&5].&4.&3" },
"RR": { "#BB": "&6[&5].&4.&3" }
}
}
}
}
}
}
}
]
demo2 :
同时设置适当的 & 符号级别以分别在多个级别达到所需的键名称。