根据m子3中的条件从数组中删除对象

发布于 2025-01-22 08:57:24 字数 1222 浏览 6 评论 0原文

我想从列表中删除对象的 aftersales_manager raflag 是错误的,但我面临的dataWeave 1.0在m子3中。请建议正确的dataWeave mule 3中的代码

%dw 1.0
%output application/json
---
payload filter ($.raflag != false and $.mule_temp_profile ='Aftersales_Manager') 
        map {
        "ldap": $.ldap,
        "status": $.status,
        "m_value": $.m_value,
        "raflag": $.raflag,
        "profile": $.profile
        }

输入:

[{
    "ldap": "V00075",
    "raflag": true,
    "profile": "Aftersales_Manager"
}, {
    "ldap": "V00076",
    "raflag": true,
    "profile": "Aftersales_Manager"
}, {
    "ldap": "V00077",
    "raflag": false,
    "profile": "Aftersales_Manager"
}, {
    "ldap": "V00078",
    "raflag": true,
    "profile": "Worker"
}, {
    "ldap": "V00079",
    "raflag": true,
    "profile": "Manager"
}]

预期输出:

[{
    "ldap": "V00075",
    "raflag": true,
    "profile": "Aftersales_Manager"
},
{
    "ldap": "V00076",
    "raflag": true,
    "profile": "Aftersales_Manager"
},
{
    "ldap": "V00078",
    "raflag": true,
    "profile": "Worker"
},
{
    "ldap": "V00079",
    "raflag": true,
    "profile": "Manager"
}
]

I want to remove the objects from the list whose profile is Aftersales_Manager and raflag is false but I'm facing and issue in DataWeave 1.0 in Mule 3. Please suggest the correct DataWeave code in Mule 3.

%dw 1.0
%output application/json
---
payload filter ($.raflag != false and $.mule_temp_profile ='Aftersales_Manager') 
        map {
        "ldap": $.ldap,
        "status": $.status,
        "m_value": $.m_value,
        "raflag": $.raflag,
        "profile": $.profile
        }

Input:

[{
    "ldap": "V00075",
    "raflag": true,
    "profile": "Aftersales_Manager"
}, {
    "ldap": "V00076",
    "raflag": true,
    "profile": "Aftersales_Manager"
}, {
    "ldap": "V00077",
    "raflag": false,
    "profile": "Aftersales_Manager"
}, {
    "ldap": "V00078",
    "raflag": true,
    "profile": "Worker"
}, {
    "ldap": "V00079",
    "raflag": true,
    "profile": "Manager"
}]

Expected output:

[{
    "ldap": "V00075",
    "raflag": true,
    "profile": "Aftersales_Manager"
},
{
    "ldap": "V00076",
    "raflag": true,
    "profile": "Aftersales_Manager"
},
{
    "ldap": "V00078",
    "raflag": true,
    "profile": "Worker"
},
{
    "ldap": "V00079",
    "raflag": true,
    "profile": "Manager"
}
]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

土豪我们做朋友吧 2025-01-29 08:57:25

您的输入没有mule_temp_profile。我怀疑您的意思是配置文件。而且无需将raflag与False进行比较,因为它已经是布尔值。该地图也不需要,因为毕竟您正在输出相同的键值。

%dw 1.0
%output application/json
---
payload filter ($.raflag or $.profile !='Aftersales_Manager') 

输出:

[
  {
    "ldap": "V00075",
    "raflag": true,
    "profile": "Aftersales_Manager"
  },
  {
    "ldap": "V00076",
    "raflag": true,
    "profile": "Aftersales_Manager"
  },
  {
    "ldap": "V00078",
    "raflag": true,
    "profile": "Worker"
  },
  {
    "ldap": "V00079",
    "raflag": true,
    "profile": "Manager"
  }
]

Your input doesn't has a mule_temp_profile. I suspect you meant profile. And there is no need to compare raflag to false because it is already a boolean. The map is also unneeded, since you are outputting the same key-values after all.

%dw 1.0
%output application/json
---
payload filter ($.raflag or $.profile !='Aftersales_Manager') 

Output:

[
  {
    "ldap": "V00075",
    "raflag": true,
    "profile": "Aftersales_Manager"
  },
  {
    "ldap": "V00076",
    "raflag": true,
    "profile": "Aftersales_Manager"
  },
  {
    "ldap": "V00078",
    "raflag": true,
    "profile": "Worker"
  },
  {
    "ldap": "V00079",
    "raflag": true,
    "profile": "Manager"
  }
]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文