SAP CPI UDF-从简单数组移动到复合数组

2020-09-02 14:43发布

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

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


您好,我正在尝试将结构简单的json矩阵传递给"复杂"或有序的矩阵。

这是我需要转换的json。
{ " NewDataSet":{ " RepObtenerPrimeraConsulta_01":[ { " @id":" RepObtenerPrimeraConsulta_011", " @rowOrder":" 0", "编号":" 1", " PREGUNTA":""您在si sicuentes instituciones obtuvo suúúltimocrédito吗?" }, { " @id":" RepObtenerPrimeraConsulta_012", " @rowOrder":" 1", "编号":" A", " PREGUNTA":" BCO DEL LITORAL" }, { " @id":" RepObtenerPrimeraConsulta_013", " @rowOrder":" 2", "编号":" B", " PREGUNTA":" BOLIVARIANO" }, { " @id":" RepObtenerPrimeraConsulta_014", " @rowOrder":" 3", "编号":" C", " PREGUNTA":" COFIEC" }, { " @id":" RepObtenerPrimeraConsulta_015", " @rowOrder":" 4", "编号":" D", " PREGUNTA":" NINGUNA" }, { " @id":" RepObtenerPrimeraConsulta_016", " @rowOrder":" 5", "编号":" 2", " PREGUNTA":""Cuántascuotas le quedan pendientes para cancelar sucrédito?" }, { " @id":" RepObtenerPrimeraConsulta_017", " @rowOrder":" 6", "编号":" A", " PREGUNTA":" NO TENGO CREDITO" }, { " @id":" RepObtenerPrimeraConsulta_018", " @rowOrder":" 7", "编号":" B", " PREGUNTA":" 1 A 8 CUOTAS" }, { " @id":" RepObtenerPrimeraConsulta_019", " @rowOrder":" 8", "编号":" C", " PREGUNTA":" 9 A 16 CUOTAS" }, { " @id":" RepObtenerPrimeraConsulta_0110", " @rowOrder":" 9", "编号":" D", " PREGUNTA":" 17 O MAS CUOTAS" }, { " @id":" RepObtenerPrimeraConsulta_0111", " @rowOrder":" 10", "编号":" 3", " PREGUNTA":"¿cucuántoscréditos用过的制浆厂? }, { " @id":" RepObtenerPrimeraConsulta_0112", " @rowOrder":" 11", "编号":" A", " PREGUNTA":" 1" }, { " @id":" RepObtenerPrimeraConsulta_0113", " @rowOrder":" 12", "编号":" B", " PREGUNTA":" 2" }, { " @id":" RepObtenerPrimeraConsulta_0114", " @rowOrder":" 13", "编号":" C", " PREGUNTA":" 3点" }, { " @id":" RepObtenerPrimeraConsulta_0115", " @rowOrder":" 14", "编号":" D", " PREGUNTA":" NINGUNA" } ], " CodigoAutogenerado":{ " @id":" CodigoAutogenerado1", " @rowOrder":" 0", " CODIGO_x0020_AUTOGENERADO":" 41518093" } } }
我必须将其传递给以下结构:

{ " validar":{ " obtenerpreguntas":{ "详细信息":{ " datos":{ " numeroConsulta":" 123", " Preguntas":[ { " pregunta":" 1", " detalle":" Pregunta 1", " Respuestas":[ { " alternativa":" a", " detalle":" mensaje 1" }, { " alternativa":" b", " detalle":" mensaje 2" }, { " alternativa":" c", " detalle":" mensaje 3" }, { " alternativa":" d", " detalle":" mensaje 4" } ] }, { " pregunta":" 2", " detalle":" Pregunta 2", " Respuestas":[ { " alternativa":" a", " detalle":" mensaje 1" }, { " alternativa":" b", " detalle":" mensaje 2" }, { " alternativa":" c", " detalle":" mensaje 3" }, { " alternativa":" d", " detalle":" mensaje 4" } ] }, { " pregunta":" 3", " detalle":" Pregunta 3", " Respuestas":[ { " alternativa":" a", " detalle":" mensaje 1" }, { " alternativa":" b", " detalle":" mensaje 2" }, { " alternativa":" c", " detalle":" mensaje 3" }, { " alternativa":" d", " detalle":" mensaje 4" } ] } ] } } } } } 我一直在使用以下脚本,但是在进行需要构建所需结构的声明时遇到了麻烦:

import com.sap.gateway.ip.core.customdev.util.Message; 导入java.util.HashMap; 导入groovy.json。*; 导入groovy.xml。*; def消息processData(消息消息){ //Obtener Json def主体= message.getBody(java.lang.String) def parseJson =新的JsonSlurper()。parseText(body) //Obtener valores de los campos //映射 String [] listaPreguntas = parseJson.NewDataSet.RepObtenerPrimeraConsulta_01 def listaPreguntas2 = parseJson.NewDataSet.RepObtenerPrimeraConsulta_01 def numeroConsulta = parseJson.NewDataSet.CodigoAutogenerado.CODIGO_x0020_AUTOGENERADO def lista = [] def lista2 = [] RespuestasJson [] respuestas2 = new RespuestasJson(); def posi = 0 for(int i = 0; i

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

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


您好,我正在尝试将结构简单的json矩阵传递给"复杂"或有序的矩阵。

这是我需要转换的json。
{ " NewDataSet":{ " RepObtenerPrimeraConsulta_01":[ { " @id":" RepObtenerPrimeraConsulta_011", " @rowOrder":" 0", "编号":" 1", " PREGUNTA":""您在si sicuentes instituciones obtuvo suúúltimocrédito吗?" }, { " @id":" RepObtenerPrimeraConsulta_012", " @rowOrder":" 1", "编号":" A", " PREGUNTA":" BCO DEL LITORAL" }, { " @id":" RepObtenerPrimeraConsulta_013", " @rowOrder":" 2", "编号":" B", " PREGUNTA":" BOLIVARIANO" }, { " @id":" RepObtenerPrimeraConsulta_014", " @rowOrder":" 3", "编号":" C", " PREGUNTA":" COFIEC" }, { " @id":" RepObtenerPrimeraConsulta_015", " @rowOrder":" 4", "编号":" D", " PREGUNTA":" NINGUNA" }, { " @id":" RepObtenerPrimeraConsulta_016", " @rowOrder":" 5", "编号":" 2", " PREGUNTA":""Cuántascuotas le quedan pendientes para cancelar sucrédito?" }, { " @id":" RepObtenerPrimeraConsulta_017", " @rowOrder":" 6", "编号":" A", " PREGUNTA":" NO TENGO CREDITO" }, { " @id":" RepObtenerPrimeraConsulta_018", " @rowOrder":" 7", "编号":" B", " PREGUNTA":" 1 A 8 CUOTAS" }, { " @id":" RepObtenerPrimeraConsulta_019", " @rowOrder":" 8", "编号":" C", " PREGUNTA":" 9 A 16 CUOTAS" }, { " @id":" RepObtenerPrimeraConsulta_0110", " @rowOrder":" 9", "编号":" D", " PREGUNTA":" 17 O MAS CUOTAS" }, { " @id":" RepObtenerPrimeraConsulta_0111", " @rowOrder":" 10", "编号":" 3", " PREGUNTA":"¿cucuántoscréditos用过的制浆厂? }, { " @id":" RepObtenerPrimeraConsulta_0112", " @rowOrder":" 11", "编号":" A", " PREGUNTA":" 1" }, { " @id":" RepObtenerPrimeraConsulta_0113", " @rowOrder":" 12", "编号":" B", " PREGUNTA":" 2" }, { " @id":" RepObtenerPrimeraConsulta_0114", " @rowOrder":" 13", "编号":" C", " PREGUNTA":" 3点" }, { " @id":" RepObtenerPrimeraConsulta_0115", " @rowOrder":" 14", "编号":" D", " PREGUNTA":" NINGUNA" } ], " CodigoAutogenerado":{ " @id":" CodigoAutogenerado1", " @rowOrder":" 0", " CODIGO_x0020_AUTOGENERADO":" 41518093" } } }
我必须将其传递给以下结构:

{ " validar":{ " obtenerpreguntas":{ "详细信息":{ " datos":{ " numeroConsulta":" 123", " Preguntas":[ { " pregunta":" 1", " detalle":" Pregunta 1", " Respuestas":[ { " alternativa":" a", " detalle":" mensaje 1" }, { " alternativa":" b", " detalle":" mensaje 2" }, { " alternativa":" c", " detalle":" mensaje 3" }, { " alternativa":" d", " detalle":" mensaje 4" } ] }, { " pregunta":" 2", " detalle":" Pregunta 2", " Respuestas":[ { " alternativa":" a", " detalle":" mensaje 1" }, { " alternativa":" b", " detalle":" mensaje 2" }, { " alternativa":" c", " detalle":" mensaje 3" }, { " alternativa":" d", " detalle":" mensaje 4" } ] }, { " pregunta":" 3", " detalle":" Pregunta 3", " Respuestas":[ { " alternativa":" a", " detalle":" mensaje 1" }, { " alternativa":" b", " detalle":" mensaje 2" }, { " alternativa":" c", " detalle":" mensaje 3" }, { " alternativa":" d", " detalle":" mensaje 4" } ] } ] } } } } } 我一直在使用以下脚本,但是在进行需要构建所需结构的声明时遇到了麻烦:

import com.sap.gateway.ip.core.customdev.util.Message; 导入java.util.HashMap; 导入groovy.json。*; 导入groovy.xml。*; def消息processData(消息消息){ //Obtener Json def主体= message.getBody(java.lang.String) def parseJson =新的JsonSlurper()。parseText(body) //Obtener valores de los campos //映射 String [] listaPreguntas = parseJson.NewDataSet.RepObtenerPrimeraConsulta_01 def listaPreguntas2 = parseJson.NewDataSet.RepObtenerPrimeraConsulta_01 def numeroConsulta = parseJson.NewDataSet.CodigoAutogenerado.CODIGO_x0020_AUTOGENERADO def lista = [] def lista2 = [] RespuestasJson [] respuestas2 = new RespuestasJson(); def posi = 0 for(int i = 0; i
付费偷看设置
发送
2条回答
亦是此间程序员
1楼-- · 2020-09-02 15:32

Morten,您好

对于给您带来的不便,我们深表歉意。

我具有以下XML结构,这是一系列问题以及按顺序排列的各自替代方案。

 
 <咨询>
  1 
 <详细>第一个问题
 
 <咨询>
  a 
 第一个答案,第一个问题
 
 <咨询>
  b 
 第二个答案,第一个问题
 
 <咨询>
  c 
 第二个答案,第一个问题
 
 <咨询>
  2 
 第二个问题
 
 <咨询>
  a 
 <详细>正确答案,第二个问题
 
 <咨询>
  b 
 第二个答案,第二个问题
 
 <咨询>
  c 
 答案,第二个问题
 
 <咨询>
  3 
 麻烦问题
 
 <咨询>
  a 
 第一个答案,更麻烦的问题
 
 <咨询>
  b 
 第二个答案,更麻烦的问题
 
 <咨询>
  c 
  tercer答案,tercer问题
 
 
 

我需要帮助的是将其放入以下JSON格式。

 {
   "根": {
     "问题":[
       {
         " question":" 1",
         " detailquestion":"第一个问题",
         "答案":[
           {
             " answer":" a",
             "详细答案":"第一个答案"
           },
           {
             " answer":" b",
             "详细答案":"第二个答案"
           },
           {
             " answer":" c",
             " detailanswers":" tercer answer"
           }
         ]
       },
       {
         "问题2",
         " detailquestion":"第二个问题",
         "答案":[
           {
             " answer":" a",
             "详细答案":"第一个答案"
           },
           {
             " answer":" b",
             "详细答案":"第二个答案"
           },
           {
             " answer":" c",
             " detailanswers":" tercer answer"
           }
         ]
       },
       {
         " question":" 3",
         " detailquestion":"更麻烦的问题",
         "答案":[
           {
             " answer":" a",
             "详细答案":"第一个答案"
           },
           {
             " answer":" b",
             "详细答案":"第二个答案"
           },
           {
             " answer":" c",
             " detailanswers":" tercer answer"
           }
         ]
       }
     ]
   }
 }
 
这是我使用的常规代码,请验证"数字"字段,以验证是否为数字,当为数字时,我使用"至"列出所有到达的问题,然后 如果不是,则表示它是一个替代值,并列出答案。
导入com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 导入groovy.json。*;
 导入groovy.xml。*;
 导入groovy.util.XmlSlurper;
 导入groovy.util.XmlParser;

 def消息processData(消息消息){

        def主体= message.getBody(java.lang.String)
        def parseXml =新的XmlSlurper()
        def结果= parseXml.parseText(body)

 字符串[]问题列表= result.consult
        定义问题列表2 = result.consult
        def列表= []
        for(int i = 0; i 
 

谢谢,

致谢

亦是此间程序员
2楼-- · 2020-09-02 15:46

您好Miguel

如果我可以提一个建议:如果1)进行了示例输入和输出,则可以为您提供很多帮助 简短一点,用英文写成; 2)您的代码具有英文注释以及类和变量名。 您面临的问题绝对是我的小巷:-),我想为您提供帮助,但就目前情况而言,我需要花更多的时间来解决这个问题,而这超出了我的能力。 换句话说,请帮助我。

祝一切顺利,

Morten

一周热门 更多>