首页 > 解决方案 > mulesoft dataweave - 看不到带有 mapObject 的列表输出

问题描述

看不到列表输出

  1. 输入 XML 有一个列表
  2. 预期产出
  3. 数据编织代码
  4. 我得到了什么输出

输入xml:

<?xml version="1.0" encoding="UTF-8"?>
<expandedNoteList>
  <expandedNote>
    <noteType>Discharge</noteType>
    <noteText>test discharge 2</noteText>
    <createdID>gpdSdoCaSupervisor</createdID>
    <createdName>SDO CA Supervisor</createdName>
    <createTimeStamp>2019-09-11T14:14:00.000-05:00</createTimeStamp>
  </expandedNote>
  <expandedNote>
    <noteType>Discharge</noteType>
    <noteText>test discharge notes</noteText>
    <createdID>gpdSdoCaSupervisor</createdID>
    <createdName>SDO CA Supervisor</createdName>
    <createTimeStamp>2019-09-11T14:01:00.000-05:00</createTimeStamp>
  </expandedNote>
</expandedNoteList>

DataWeave 脚本:

extendedNote: [ 
      (payload.expandedNoteList mapObject { 
           "expandedNoteDateTime": $.createTimeStamp,    
           "expandedNoteType": $.noteType,
           "expandedNoteText": $.noteText,
      }
     ) if(payload.expandedNoteList !=null),
 ],

标签: listviewdataweavemulesoft

解决方案


以下 Dataweave 代码应该可以工作:

%dw 2.0
output application/json
---
extendedNote: payload..*expandedNote map
{
      "expandedNoteDateTime": $.createTimeStamp,
      "expandedNoteType": $.noteType,
      "expandedNoteText": $.noteText
}

输出:

{
  "extendedNote": [
    {
      "expandedNoteDateTime": "2019-09-11T14:14:00.000-05:00",
      "expandedNoteType": "Discharge",
      "expandedNoteText": "test discharge 2"
    },
    {
      "expandedNoteDateTime": "2019-09-11T14:01:00.000-05:00",
      "expandedNoteType": "Discharge",
      "expandedNoteText": "test discharge notes"
    }
  ]
}

推荐阅读