【问题标题】:compare two arrays in dataweave2.0比较dataweave 2.0中的两个数组
【发布时间】:2019-10-17 00:22:46
【问题描述】:

我希望代码比较两个数组并确定它们是否相等,无论它们的顺序如何

[a,b,c] 与 [a, b,c ] 相比应该为真 [a,b,c] 与 [a,c,b] 的比较也应该为真。

我尝试使用 dataweave 2.0 中的 diff 函数,但它仅在参数是 Json 对象而不是数组时才有效。

【问题讨论】:

  • 订购选项吗?您可以先订购然后比较。
  • 是的。那行得通。

标签: mule dataweave


【解决方案1】:

@George 提到了一个简单的 orderBy 解决了我的问题

import diff from dw::util::Diff
%dw 2.0
output application/json
---
{

  result: diff(payload.array orderBy  $, vars.array orderBy $).matches


}

解决了这个问题。

【讨论】:

    【解决方案2】:

    您可以将 Diff 模块与 unordered 属性一起使用

    import diff from dw::util::Diff
    %dw 2.0
    output application/json
    ---
    {
      result: diff(payload.array, vars.array, {unordered: true}).matches
    }
    

    【讨论】:

    • 比较两个数组时它不起作用。如果您要比较两个具有不同顺序的 json 对象,它会起作用。我做了一个测试,它不起作用。
    猜你喜欢
    • 1970-01-01
    • 2020-02-02
    • 2023-03-03
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多