DataMapper 中介:当输入 JSON 中 属性 的父级为空时映射失败

DataMapper mediator: mapping failed when property's parent in input JSON is null

我正在尝试通过 wso2 esb 集成器中的数据映射器将结果 json 对象映射到 wso2 中的嵌套字段。这是我要实现的目标:

输入json文件进行映射:

{
  "name":"John",
  "location": {
    "id": 1,
    "city": "Sydney"
  }
}

输出json文件得到:

{
  "name":"John",
  "city": "Sydney"
}

在输入 Json 变为

之前它工作正常
{
  "name":"John",
  "location": null
  }
}

我需要的结果是

{
  "name":"John"
}

但我得到了一个异常,因为位置为空。

ERROR {org.wso2.carbon.mediator.datamapper.DataMapperMediator} - DataMapper mediator : mapping failed Error while reading input stream. Script engine unable to execute the script javax.script.ScriptException: TypeError: Cannot get property "city" of null in <eval> at line number 1

我的问题是如何在 DataMapper 调解器中正确处理该字段在某些条件下不应映射。

如果有人能帮助我,我将不胜感激。

谢谢。

看来我解决了这个问题。

您可以在注册表项目的 .dmc 文件中添加任何条件检查。

if (inputroot.location != null) {
    outputroot[0].city = inputroot.location.city;
}