【问题标题】:Fetching data from arrays in payload using dataweave 2.0使用 dataweave 2.0 从有效负载中的数组中获取数据
【发布时间】:2021-05-26 09:48:00
【问题描述】:
**Input**
{
 "result": [
            [
              {
                "ID": "12345",
                "Name": "xyz",
              },
              {
                "ID": "12345",
                "Title": "abc",
               }
            ]
          ]
"result": [
            [
              {
                "ID": "67890",
                "Name": "pqr",
              }
            ]
          ]
          }

输出

尝试从有效负载中的数组中获取数据。输出数据应为xml格式 提前致谢

【问题讨论】:

  • 这是预期的输出:Output 12345xyz12345abc67890pqr
  • 请编辑问题并在此处添加预期结果。

标签: dataweave


【解决方案1】:

由于嵌套级别,这有点令人费解。最后我需要一个额外的 reduce() 来从数组转换为对象。 我还需要编辑输入,因为它不是有效的 JSON。

输入:

{
    "result": [
            [
              {
                "ID": "12345",
                "Name": "xyz"
              },
              {
                "ID": "12345",
                "Title": "abc"
               }
            ]
          ],
    "result": [
            [
              {
                "ID": "67890",
                "Name": "pqr"
              }
            ]
          ]
}

脚本:

%dw 2.0
output application/xml
---
{
    result: 
        payload.*result flatMap 
            $ flatMap 
                $ flatMap ((item, index) -> 
                    { 
                        root: { 
                            ID: item.ID, 
                            Name: item.Name default item.Title
                        } 
                    }
                ) reduce ((item, accumulator) -> accumulator ++ item)    
}

输出:

<?xml version='1.0' encoding='UTF-8'?>
<result>
  <root>
    <ID>12345</ID>
    <Name>xyz</Name>
  </root>
  <root>
    <ID>12345</ID>
    <Name>abc</Name>
  </root>
  <root>
    <ID>67890</ID>
    <Name>pqr</Name>
  </root>
</result>

【讨论】:

  • 12345xyz12345abc67890pqr
  • 对于 json 中的第二个结果,应该有 67890pqr
  • 抱歉格式化,我无法以正确的方式获取它
  • 如果我理解正确,您需要一个包含两个顶级元素的 XML。这在 XML 中无效。请澄清。
  • 是的@aled。对于输入有效负载中的两个数组(结果),我希望每个数组的顶部元素分别为
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
相关资源
最近更新 更多