【问题标题】:DataMapper mediator: mapping failed when property's parent in input JSON is nullDataMapper 调解器:当输入 JSON 中的属性父级为空时,映射失败
【发布时间】:2020-08-13 02:42:21
【问题描述】:

我正在尝试通过 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 调解器中正确处理该字段在某些条件下不应该被映射。

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

谢谢。

【问题讨论】:

    标签: wso2 datamapper


    【解决方案1】:

    看来我解决了这个问题。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 2022-11-20
      • 1970-01-01
      相关资源
      最近更新 更多