【问题标题】:XML to Json Mapping -Data weave script filtration on indexingXML 到 Json 映射 - 索引上的数据编织脚本过滤
【发布时间】:2017-09-12 12:37:16
【问题描述】:

我必须在我的代码中实现小逻辑——这里我收到一个 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]  ,
}

但是这个脚本不起作用,我没有得到预期的结果。
出现此错误的原因可能是什么?

【问题讨论】:

    标签: json xml indexing mule dataweave


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢它的工作,但你能帮我解释一下“payload.details.*mydetail.futuredate[$$ - 1]”这个语法,它是如何工作的..
    • 由于您需要前一个对象的 futuredate,payload.details.*mydetail.futuredate 这将返回 futuredate 数组,如 [1,2,3],然后下一部分是数组索引选择器 [$$-1],它返回前一个对象的 futuredate 值。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多