XML到Json Mapping -Data在索引编织脚本过滤

时间:2017-09-11 12:46:28

标签: json xml indexing mule dataweave

我必须在我的代码中实现小逻辑 - 这里我得到一个XML请求,它必须转换为JSON。在转换之前,我必须实现小逻辑,我的输入XML是:

<details>
  <mydetail>
    <Firstdate>2017</Firstdate>
    <futuredate>1</futuredate>
  </mydetail>
  <mydetail>
    <Firstdate>2017</Firstdate>
    <futuredate>2</futuredate>
  </mydetail>
  <mydetail>
    <Firstdate>2017</Firstdate>
    <futuredate>3</futuredate>
  </mydetail>
</details>

我的预期JSON是:

[
  {
    "Currentdate": "2017",
    "Nextdate: null

  },
  {
   "Currentdate": "2017",
    "Nextdate "1"
  },
 {
    "Currentdate": "2017",
    "Nextdate "2"
  }
]

逻辑
作为回应,如果它是JSON中的第一个Nextdate,则它始终为null,否则Nextdate将映射到futuredate的上一个值。

我在下面写了数据编织脚本,但它无效。

payload.details.*mydetail map {
    Currentdate: $.Firstdate,
    Nextdate: null when $$==0 otherwise $.Seconddate [$$-1]  ,
}

但是这个剧本不起作用,我没有得到预期的结果 造成这种错误的原因是什么?

1 个答案:

答案 0 :(得分:1)

使用以下脚本获取所需的输出

%dw 1.0
%output application/json
---
payload.details.*mydetail map  {
    Currentdate: $.Firstdate,
    Nextdate: null when $$ == 0 otherwise payload.details.*mydetail.futuredate[$$ - 1]  
}

您的脚本在映射,时会产生额外的Nextdate,这会导致错误。