groovy脚本获取数据json

2020-08-24 03:41发布

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

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


尊敬的专家,

我需要你的建议

我如何从json中获取数据?

 {
 " status":"成功",
 "代码":" SSR001",
 " message":"订单存在",
 " order_number":" 2817183923949",
 " order_date":" 2018-12-28 10:29:03",
 " delivery_method":"链接",
 "数据":[
 {
 " id_voucher":" IDTEST119",
 " kode_voucher":" S0RWMTE5",
 " tgl_expired":" 2019-12-31",
 " URL":" https://cxxx.me/f39b9a51250556be8924b85da9558e6b/1537176870"
 },
 {
 " id_voucher":" IDTEST334",
 " kode_voucher":" S0RWMzM0",
 " tgl_expired":" 2019-12-31",
 " URL":" https://cxxx.me/g39b9a31250556be8924b85da9558e6b/1537176871"
 }
 ],
 "当前页":1
 " total_page":1
 "最大记录":10,
 "总记录":2
 }
 

你有主意吗?

如果尝试使用此代码,但我感到迷茫

/*
  集成开发人员需要创建方法processData
  该方法采用包com.sap.gateway.ip.core.customdev.util的Message对象。
 其中包括对内容开发者有用的帮助方法:
 可用的方法有:
     公共java.lang.Object getBody()
 公共无效setBody(java.lang.Object exchangeBody)
     公共java.util.Map  getHeaders()
     公共无效setHeaders(java.util.Map  exchangeHeaders)
     public void setHeader(java.lang.String名称,java.lang.Object值)
     公共java.util.Map  getProperties()
     公共无效setProperties(java.util.Map  exchangeProperties)
     public void setProperty(java.lang.String名称,java.lang.Object值)
     公共java.util.List  getSoapHeaders()
     公共无效setSoapHeaders(java.util.List  soapHeaders)
        公共无效clearSoapHeaders()
  */
 导入com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 导入groovy.json。*


 def消息processData(消息消息){
    //属性
     def map = message.getProperties()
     def EffectiveStartDate = map.get(" effectiveStartDate")
     def externalCode = map.get(" externalCode")
     def transactionSequence = map.get(" transactionSequence")
    
    //身体
     def正文= message.getBody(String.class)
     def jsonSlurper =新的JsonSlurper()
     def list = jsonSlurper.parseText(body)
     def状态= list.status.toString()
     def kode_voucher = list.kode_voucher.toString()
   
    
     正文= [cust_TransactionWallet2:[
     有效的开始日期:有效的开始日期,
     externalCode:externalCode,
     transactionSequence:transactionSequence,
     cust_status:状态,
     客户说明:kode_voucher,
     ]]
 
     def json_str = JsonOutput.toJson(body)


     message.setBody(json_str);
    
     
    
     返回消息;
 }
 

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

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


尊敬的专家,

我需要你的建议

我如何从json中获取数据?

 {
 " status":"成功",
 "代码":" SSR001",
 " message":"订单存在",
 " order_number":" 2817183923949",
 " order_date":" 2018-12-28 10:29:03",
 " delivery_method":"链接",
 "数据":[
 {
 " id_voucher":" IDTEST119",
 " kode_voucher":" S0RWMTE5",
 " tgl_expired":" 2019-12-31",
 " URL":" https://cxxx.me/f39b9a51250556be8924b85da9558e6b/1537176870"
 },
 {
 " id_voucher":" IDTEST334",
 " kode_voucher":" S0RWMzM0",
 " tgl_expired":" 2019-12-31",
 " URL":" https://cxxx.me/g39b9a31250556be8924b85da9558e6b/1537176871"
 }
 ],
 "当前页":1
 " total_page":1
 "最大记录":10,
 "总记录":2
 }
 

你有主意吗?

如果尝试使用此代码,但我感到迷茫

/*
  集成开发人员需要创建方法processData
  该方法采用包com.sap.gateway.ip.core.customdev.util的Message对象。
 其中包括对内容开发者有用的帮助方法:
 可用的方法有:
     公共java.lang.Object getBody()
 公共无效setBody(java.lang.Object exchangeBody)
     公共java.util.Map  getHeaders()
     公共无效setHeaders(java.util.Map  exchangeHeaders)
     public void setHeader(java.lang.String名称,java.lang.Object值)
     公共java.util.Map  getProperties()
     公共无效setProperties(java.util.Map  exchangeProperties)
     public void setProperty(java.lang.String名称,java.lang.Object值)
     公共java.util.List  getSoapHeaders()
     公共无效setSoapHeaders(java.util.List  soapHeaders)
        公共无效clearSoapHeaders()
  */
 导入com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 导入groovy.json。*


 def消息processData(消息消息){
    //属性
     def map = message.getProperties()
     def EffectiveStartDate = map.get(" effectiveStartDate")
     def externalCode = map.get(" externalCode")
     def transactionSequence = map.get(" transactionSequence")
    
    //身体
     def正文= message.getBody(String.class)
     def jsonSlurper =新的JsonSlurper()
     def list = jsonSlurper.parseText(body)
     def状态= list.status.toString()
     def kode_voucher = list.kode_voucher.toString()
   
    
     正文= [cust_TransactionWallet2:[
     有效的开始日期:有效的开始日期,
     externalCode:externalCode,
     transactionSequence:transactionSequence,
     cust_status:状态,
     客户说明:kode_voucher,
     ]]
 
     def json_str = JsonOutput.toJson(body)


     message.setBody(json_str);
    
     
    
     返回消息;
 }
 
付费偷看设置
发送
6条回答
浮生未央
1楼 · 2020-08-24 04:30.采纳回答

您好Achmad,

下面将做有需要的工作。

 def消息processData(消息消息)
  {
     def Output ="";
    //身体
     def主体= message.getBody(String);

     def jsonSlurper =新的JsonSlurper()
     def list = jsonSlurper.parseText(正文为String)
    
     list.data.each
     {
      输出=输出+" URL:" + it.url +" \ n"
     }
    
     message.setBody(Output.toString())
     返回消息;
  }
 

问候,

Sriprasad Shivaram Bhat

me_for_i
3楼-- · 2020-08-24 04:28

为什么您不能使用转换模式JSON x XML,而在使用消息映射来完成其余过程中需要做的事情之后?

Nir深蓝
4楼-- · 2020-08-24 04:31

嗨, Carlos Rodrigo
是可以的,但是我更喜欢使用 脚本,因为我需要学习脚本的工作原理

谢谢

d56caomao
5楼-- · 2020-08-24 04:15

嗨,Achmad!

期望的输出是什么?

Evgeniy。

土豆飞人
6楼-- · 2020-08-24 04:21

Halo Evgeniy Kolmakov

我只需要拥有

" URL":" https://cxxx.me/f39b9a51250556be8924b85da9558e6b/1537176870"

 " url":" https://cxxx.me/g39b9a31250556be8924b85da9558e6b/1537176871" 

这就是我想要的

谢谢

一周热门 更多>