首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Mule 3将json对象转换为数组

Mule 3将json对象转换为数组
EN

Stack Overflow用户
提问于 2021-04-04 16:33:08
回答 1查看 302关注 0票数 0

下面的动态响应来自第三方API,现在我只需要将特定的JSON对象("MyValues")转换为数组。

这里的有效负载是样本是非常大的。

当前输出:

代码语言:javascript
代码运行次数:0
运行
复制
{
    "Body": {
          "Status": "200",
          "Result": {
            "MyValues":{
                "Name":"ABC TEST",
                "Phone":"1234"
            }
          }
    }
}

预期输出:

代码语言:javascript
代码运行次数:0
运行
复制
{
    "Body": {
          "Status": "200",
          "Result": {
            "MyValues":[{
                "Name":"ABC TEST",
                "Phone":"1234"
            }]
          }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2021-04-04 19:50:21

您可以根据接收到的类型、数组或对象使用模式匹配。我创建了一个递归函数来查找键名的实例,并以通用的方式执行更改。

示例:

代码语言:javascript
代码运行次数:0
运行
复制
%dw 1.0
%output application/json
%function convertToSingleArray(x, key)
    x match {
                  // OPTIONAL :array  ->  x map convertToSingleArray($, key),
                  :object ->  x mapObject {($$): [$] when ( (($$ as :string) == key) and ((typeOf $) as :string  == ":object")) otherwise convertToSingleArray($, key)
                  },
                  default  ->  x
            }
---
convertToSingleArray(payload, "MyValues")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66939363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档