繁体   English   中英

JSON 颠簸 null 值在转换后添加到嵌套数组

[英]JSON jolt null value added to a nested array after transformation

我对 JSON 颠簸转换有疑问,请考虑以下情况,我也尝试过不同版本的颠簸库。

输入 json:

{
    "id": "b08a2c93-f59e-4f54-8e16-2f1c4345b53b",
    "equipment": [{
        "number": "S765769",
        "type": "40 DRY"
    }, {
        "number": "N5765769",
        "type": "20 DRY"
    }]
}

颠簸规格

[{
    "operation": "shift",
    "spec": {
        "equipment": {
            "*": {
                "number": ["CTN[&1].IDT", "CTN[&1].CTN[&1].IDT"],
                "type": "CTN[&1].CTN[&1].TYP"
            }
        }
    }
}]

Output Json:

{
    "CTN": [{
        "IDT": "S765769",
        "CTN": [{
            "IDT": "S765769",
            "TYP": "40 DRY"
        }]
    }, {
        "IDT": "N5765769",
        "CTN": [ ** null ** , {
            "IDT": "N5765769",
            "TYP": "20 DRY"
        }]
    }]
}

正如您在 output 中看到的,在第二个 CTN 数组 object 中,第一个元素是 null ! 我们如何摆脱 null 使 output 变成这样

需要 output

{
    "CTN": [{
        "IDT": "S765769",
        "CTN": [{
            "IDT": "S765769",
            "TYP": "40 DRY"
        }]
    }, {
        "IDT": "N5765769",
        "CTN": [{
            "IDT": "N5765769",
            "TYP": "20 DRY"
        }]
    }]
}

您可以将 null 压扁,为您的规范添加一个额外的步骤:

[{
  "operation": "shift",
  "spec": {
    "equipment": {
      "*": {
        "number": ["CTN[&1].IDT", "CTN[&1].CTN[&1].IDT"],
        "type": "CTN[&1].CTN[&1].TYP"
      }
    }
  }
}, {
  "operation": "modify-overwrite-beta",
  "spec": {
    "*": "=recursivelySquashNulls"
  }
}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM