SAP Cloud Platform集成– Groovy脚本,用于从对象数组中删除空数组

2020-08-21 20:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在研究一种实现,其中接收方正在请求JSON文件格式。 我正在使用集成映射来创建与JSON格式匹配的XML。 然后,我要执行标准的XML到JSON的转换,然后执行一个常规脚本,以从每个对象数组中删除"元素"条目。 我的最后一步是,如果对象数组包含一个空元素,则结果应该是一个空对象数组,看起来像:" TestQualitativeMeasurement":[]。

如果我创建不考虑数据的元素,将XML转换为JSON,然后执行我的脚本,我的结果将看起来像" TestQualitativeMeasurement":[""](接收者不接受此为空对象)

如果没有数据,我尝试不映射该元素,但这导致对象数组最终看起来像" TestQualitativeMeasurement":"",并且缺少所需的[]对象限定符。

有人能建议我如何做到这一点吗? 我相信我应该能够在常规脚本中做到这一点,但是我找不到合适的组合。

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在研究一种实现,其中接收方正在请求JSON文件格式。 我正在使用集成映射来创建与JSON格式匹配的XML。 然后,我要执行标准的XML到JSON的转换,然后执行一个常规脚本,以从每个对象数组中删除"元素"条目。 我的最后一步是,如果对象数组包含一个空元素,则结果应该是一个空对象数组,看起来像:" TestQualitativeMeasurement":[]。

如果我创建不考虑数据的元素,将XML转换为JSON,然后执行我的脚本,我的结果将看起来像" TestQualitativeMeasurement":[""](接收者不接受此为空对象)

如果没有数据,我尝试不映射该元素,但这导致对象数组最终看起来像" TestQualitativeMeasurement":"",并且缺少所需的[]对象限定符。

有人能建议我如何做到这一点吗? 我相信我应该能够在常规脚本中做到这一点,但是我找不到合适的组合。

谢谢

付费偷看设置
发送
3条回答
奄奄一息的小鱼
1楼 · 2020-08-21 21:23.采纳回答

尊敬的贝弗利

由于JSON只是一个"字符串",您可以在JSON转换后直接运行搜索替换脚本。

导入com.sap.gateway。  ip.core.customdev.util.Message
 def消息processData(消息消息){
     def body = message.getBody(java.lang.String)作为String
     body = body.replace(" [\" \"]"," []")
     message.setBody(body)
     返回讯息
 }
 
小熊yu生菜
2楼-- · 2020-08-21 21:29

您好,贝弗利公园,请附加XML,Groovy 和/或映射屏幕截图和/或代码?
如果完全不执行删除脚本,而仅执行XML> JSON映射,结果如何? BP,彼得

SKY徐
3楼-- · 2020-08-21 21:25

谢谢。 效果非常好,当我尝试学习Groovy脚本时,我了解了转义字符。

一周热门 更多>