REST接收器-JSON格式-数组内未命名的数组-删除结构中的FieldNames

2020-09-17 06:29发布

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

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


大家好,

有什么方法可以在SAP PI 7.5上构建XML结构,然后将其转换为JSON(使用REST适配器)以生成此结构:

 {
    "标题":[
       "ID",
       "市",
       "国家"
    ],
    "行":[
       [
          12345,
          "纽约",
          "美国"
       ],
       [
          12346,
           " TORONTO",
          "加拿大"
       ],
       [
          12347,
          "华盛顿",
          "美国"
       ]
    ]
 }
 

这是先前结构的模板:

 {
    "标题":[
       " FieldName1",
       " FieldName2",
       " FieldName3"
    ],
    "行":[
       [
          FieldName1-Value1,
          FieldName2-" Value1",
          FieldName3-" Value1",
       ],
       [
          FieldName1-Value2,
          FieldName2-" Value2",
          FieldName3-" Value2",
       ],
       [
          FieldName1-Value3,
          FieldName2-" Value3",
          FieldName3-" Value3",
       ]
    ]
 }

 

问题在于"线"结构。 数组"行"中有一个数组,但是上面没有名称。

我当时在考虑使用JAVA映射来生成它,但我更喜欢使用标准方式。

谢谢。

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

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


大家好,

有什么方法可以在SAP PI 7.5上构建XML结构,然后将其转换为JSON(使用REST适配器)以生成此结构:

 {
    "标题":[
       "ID",
       "市",
       "国家"
    ],
    "行":[
       [
          12345,
          "纽约",
          "美国"
       ],
       [
          12346,
           " TORONTO",
          "加拿大"
       ],
       [
          12347,
          "华盛顿",
          "美国"
       ]
    ]
 }
 

这是先前结构的模板:

 {
    "标题":[
       " FieldName1",
       " FieldName2",
       " FieldName3"
    ],
    "行":[
       [
          FieldName1-Value1,
          FieldName2-" Value1",
          FieldName3-" Value1",
       ],
       [
          FieldName1-Value2,
          FieldName2-" Value2",
          FieldName3-" Value2",
       ],
       [
          FieldName1-Value3,
          FieldName2-" Value3",
          FieldName3-" Value3",
       ]
    ]
 }

 

问题在于"线"结构。 数组"行"中有一个数组,但是上面没有名称。

我当时在考虑使用JAVA映射来生成它,但我更喜欢使用标准方式。

谢谢。

付费偷看设置
发送
6条回答
梦想连接
1楼 · 2020-09-17 07:03.采纳回答

太删除列表标记为适配器模块添加一个参数,其值为:setIgnoredElements,值为列表

d56caomao
2楼-- · 2020-09-17 07:17

谢谢,我将尝试使用此解决方案,并让您知道...我必须将SP007应用于 我们的PI系统对其进行测试。

宇峰科技
3楼-- · 2020-09-17 06:52

嗨,以色列!

看看您的模板,第一个问题是:由于您在JSON中描述了未命名的数组,因此JSON输入的相应XML结构应如何?

关于Evgeniy。

梦想连接
4楼-- · 2020-09-17 07:09

嗨,Evgeniy

这是我们遇到的问题...未命名的数组。

这是我们思考构建XML目标结构的方式。

当我们将其发送到REST适配器时,标题看起来不错,但行却不行。

 {
    "标题":[
       "ID",
       "市",
       "国家"
    ],
    "行":[
       " 12345,\" NEWYORK \",\"美国\"",
       " 12346,\" TORONTO \",\" CANADA \"",
       " 12347,\"华盛顿\",\"美国\""
    ]
 }
 

您知道如何在行内使用未命名的数组吗?

仅供参考,这是源结构...


callcenter油条
5楼-- · 2020-09-17 06:56

我已经建立了一个结构:

我将以下XML粘贴到此页面: https://www.freeformatter.com/xml-to-json-converter.html#ad-output

   <列表> ID  城市 国家      12345   NEWYORK  美国    12346  < 列表>多伦多 <列表>加拿大  <列表> <列表> 12347  <列表>华盛顿 <列表>美国     

并将XML转换为我期望的JSON:

 {
   "标题":[
     "ID",
     "市",
     "国家"
   ],
   "行":[
     [
       " 12345",
       "纽约",
       "美国"
     ],
     [
       " 12346",
       " TORONTO",
       "加拿大"
     ],
     [
       " 12347",
       "华盛顿",
       "美国"
     ]
   ]
 }
 

但是当我在SAP PI上运行它时,它返回:

 {
    "标题":[
       {
          "列表":[
             " ExternalID",
             "市",
             "国家"
          ]
       }
    ],
    "行":[
       {
          "列表":[
             {
                "列表":[
                   12345,
                   " MONTERREY",
                   "墨西哥"
                ]
             },
             {
                "列表":[
                   12346,
                   "瓜达拉哈拉",
                   "墨西哥"
                ]
             },
             {
                "列表":[
                   12347,
                   " CDMX",
                   "墨西哥"
                ]
             }
          ]
       }
    ]
 }
 

如何删除"列表"标记?

派大星 ヾ
6楼-- · 2020-09-17 07:05

我是使用Java映射(将XML转换为JSON)(在映射时)并删除了将XML转换为JSON的检查所完成的操作 频道接收器。

Manoj K 提出的解决方案有效,但我们的PI环境不可行 已更新为SP007。

一周热门 更多>