SAP Cloud Platform集成– XML到JSON的转换

2020-08-22 07:09发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个IFLOW,其中我执行了...

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

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


我有一个IFLOW,其中我执行了将数据发送到外部方所需的XML到JSON转换。

转换前的XML:

 <?xml version =" 1.0" encoding =" UTF-8"?>
 <根>
   <元素>
      4.01 
      
      0.538 
      false 
   
   <元素>
      3.85 
      
      0.540 
      
   
  
我的问题是,转换后,我的JSON文件包含
 {" element":[{" field1":" 4.01"," field2":""," field3":" 0.538"," field4":" false"},
 {" field1":" 3.85"," field2":""," field3":" 0.540"," field4":""}]} 
结果需要看起来像:

 [{" field1":" 4.01"," field2":""," field3":" 0.538"," field4":" false"},
 {" field1":" 3.85"," field2":""," field3":" 0.540"," field4":""}]] 

如何在发送数据之前从数据中删除{" element" :? 我尝试了一个没有运气的常规脚本。

我使用以下方法定义了XML到JSON的转换-不使用命名空间映射; JSON前缀=冒号; 抑制JSON根; 流式XML元素//root/element

3条回答
CJones
2020-08-22 07:29 .采纳回答

Beverely,您好

您绝对可以通过一些Groovy编程来解决此问题。 用Groovy解析XML很简单,就像生成JSON一样。 看一下这个脚本:

 import com.sap.gateway.ip.core.customdev.util.Message
 导入groovy.util.XmlSlurper
 导入groovy.json.JsonOutput

 def消息processData(消息消息){
     def root = new XmlSlurper()。parseText(message.getBody())
     def元素= []
    
     root.element.each {e->
         def fieldMap = [:]
         e.children()。each {c->
             fieldMap [c.name()] = c.text()
         }
         元素<< fieldMap
     }
    
     message.setBody(JsonOutput.toJson(elements))
     返回讯息
 } 

脚本在元素上进行迭代。 对于每个元素,它都会为每个子元素的名称和文本内容创建一个Map。 该地图已添加到列表中。 最后,使用JsonOutput类将Map对象列表转换为JSON。

问候

Morten

一周热门 更多>