如何在 Mule DataWeave 中过滤 JSON 数组

2024-06-24

我有这样的 JSON:

{
  "dcsId": "1184001100000000517",
  "marketCode": "US",
  "languageCode": "en-US",
  "profile": {
  "base": {
     "username": "arunima27",
     "activeInd": "R",
     "phone": [
       {
          "activeInd": "Y",
          "type": "mobile",
          "primaryInd": "Y",
          "number": "2234566788"
       },
       {
         "activeInd": "N",
         "type": "mobile",
         "primaryInd": "N",
         "number": ""
       }
      ]
    }
  }
 }

从这个输入 JSON 中,我们需要提取有效负载.profile.base.phone.number,其中有效负载.profile.base.phone.type ==“mobile”和有效负载.profile.base.phone.activeInd ==“Y”。实际上,我们需要循环遍历 JSON 数组 (payload.profile.base.*phone) 并仅获取处于活动状态且类别/类型为移动的电话号码。

我们需要如下输出:

{
  "dcsId": "1184001100000000517",
  "marketCode": "US",
  "languageCode": "en-US",
  "username" :  "arunima27", 
  "phoneNumber" : "2234566788"
}  

我们在对“phoneNumber”输出变量进行此转换时遇到问题。


从您的预期结果来看,您似乎只想要第一个匹配的数字。这里的 dataweave 正是这样做的:

%dw 1.0
%output application/json
---
{
    dcsid: payload.dcsId,
    markCode: payload.marketCode,
    languageCode: payload.languageCode,
    username: payload.profile.base.username,
    phoneNumber: (payload.profile.base.phone filter ($.activeInd == 'Y' and $.type == 'mobile'))[0].number
}

如果您想要所有匹配的电话号码,只需留下[0]出和值phoneNumber结果将是一个数组(不仅仅是第一个匹配的电话号码)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Mule DataWeave 中过滤 JSON 数组 的相关文章

随机推荐

  • 错误代码 CS1061 运算符“*”不能应用于“Vector 3”和“Vector3”类型的操作数。我该如何解决这个问题

    您好 我正在尝试使用我的脚本根据速度为角色创建统一的运动 但出现错误CS0019 操作员 不能应用于 Vector3 和 Vector3 类型的操作数 不断出现 我尝试过类似问题的解决方案错误 CS0019 运算符 无法应用于类型 Vect
  • 防止在 AJAX 请求上发送 Cookie

    我有一个从脚本调用的 Web 服务 但不需要存储在 cookie 中的任何信息 每当我向服务发出请求时 cookie 都会随之发送 我知道默认情况下 cookie 是通过 HTTP 请求发送的 但是有什么方法可以覆盖该行为而不发送 cook
  • 什么是 jsconfig.json?

    如果我在 Internet 上搜索相同的问题 那么我只会得到 Visual Studio Code 网站和一些实现它的博客的链接 我想知道那是jsconfig json特定于 Visual Studio Code 或javascript w
  • IdentityServer 4 的自定义登录 UI

    我正在做一个类似于 IdentityServer4 Quickstart UI 的项目 但将登录 UI 和 IdentityServer 分开 更具体地说 IdentityServer 本身将是一个纯 WebApi 登录 UI 可以是使用
  • jQuery Ajax 调用在 IE 中非常慢,但在 Firefox 中却很快

    我正在执行 jQuery ajax 返回一个调用List
  • 模态 Segue,导航栏消失

    我正在使用 Xcode 4 6 1 在 Objective C 上进行编码 我想知道当我在两个视图控制器之间创建模态转场时如何保持导航栏显示 因为我正在故事板中进行转场 并且当我运行应用程序时 第二个视图控制器的导航栏消失 并且我在该栏上有
  • 运行“bundle install”失败并要求我运行“bundle install”

    事实上 当从我从 git 存储库克隆的现有 Rails 应用程序内部运行时 所有与 gem 相关的命令都会导致相同的错误消息 bundle install Could not find tzinfo 0 3 27 in any of the
  • 多处理器提升::线程?所有线程都在一个处理器上运行

    我有一个令人尴尬的并行问题 我想在多个处理器上执行 我原以为boost thread会自动将新线程发送到新处理器 但所有线程都在与父进程相同的核心上执行 是否可以让每个线程在不同的处理器上运行 或者我是否需要 MPI 之类的东西 我的怀疑是
  • 如何恢复已删除的文件[重复]

    这个问题在这里已经有答案了 可能的重复 在 Git 存储库中恢复已删除的文件 https stackoverflow com questions 953481 restore a deleted file in a git repo 如何恢
  • 绑定到 Android 中的 AccessibilityService?

    我创建了一个安卓Service 它扩展了AccessibilityService 从我的Activity 我想绑定到那个Service 因为我需要发送信息Service to Activity 我需要示例代码 我已经搜索过谷歌 但没有找到类
  • 从元组类型中删除所有可选项目

    假设我想用可选项目来转换一个元组 例如 1 2 3 4 到仅包含所需项目的数组 gt 1 2 我想出的如下所示 它永远不会转向所有可选项目 而我被困在这里 type OnlyReq
  • 如何为 Yarn 设置自定义缓存路径?

    我刚刚安装了 Yarn 并尝试从 npm 切换 我尝试像这样设置缓存路径 但没有成功 yarn cache folder usr local Caches yarn yarn global cache folder usr local Ca
  • 如何使用Google Chrome缩略图预览服务?

    有人知道如何使用 google chrome 服务来生成网站缩略图 新标签上浏览次数最多的网站 有想法做类似的事情吗 These 浏览 chrome 源代码我找不到任何有趣的东西 你呢 来源在这里 http src chromium org
  • 拓扑排序卡恩算法 BFS 或 DFS

    拓扑排序的方法是BFS还是DFS 哪个正确 我认为BFS是对的 但有些网站说DFS 有些网站说BFS 我很困惑 卡恩算法与 BFS 或 DFS 相同吗 或者BFS 或DFS 只是卡恩算法的工具 Kahn算法和DFS在实践中都用于拓扑排序 选
  • MFC中如何获取子菜单?

    我正在尝试获取一个子菜单 以便我可以在显示它之前对其进行更改 所以我创建了一个OnInitMenu 我的窗口的处理程序 我本来计划使用pMenu gt GetMenuItemInfo 获取子菜单 然而 这似乎行不通 为了找到我想要的菜单 我
  • React fetch 有错误 fetch 被 CORS 策略阻止 [重复]

    这个问题在这里已经有答案了 我尝试点击登录按钮调用获取 REST 调用 但是 问题是提取失败 并在 Javascript 控制台中显示此错误消息 从源获取的访问已被 CORS 策略阻止 请求的资源上不存在 Access Control Al
  • 回调已经被称为 Angular cli

    我更新了我的 Angular CLI 然后我在 ng 服务中遇到错误 Callback was already called at throwError node modules neo async async js 14 11 at no
  • 缺少升级:在 netty 4.x 上同时提供 http 和 ws

    我正在 netty 上编写一个聊天应用程序 我尝试为两者服务HTTP and WS 但是http响应只是这些消息 不是 WebSocket 握手请求 缺少升级 这是我的代码片段 在InitChannel方法中 p addLast new H
  • R:如何改变格子(levelplot)颜色主题?

    我安装的默认主题是将值映射为粉色和青色的主题 例如如何将其更改为灰度主题 您可以使用 library lattice lattice options default theme standard theme color FALSE 它会打开
  • 如何在 Mule DataWeave 中过滤 JSON 数组

    我有这样的 JSON dcsId 1184001100000000517 marketCode US languageCode en US profile base username arunima27 activeInd R phone