【问题标题】:Mule - Generate Payload in JSON format from HashMap <String, String> in the following formatMule - 从以下格式的 HashMap <String, String> 生成 JSON 格式的 Payload
【发布时间】:2020-03-19 03:29:16
【问题描述】:

Mule 3.9:如何从 HashMap 类型生成 JSON 格式的负载。

将 HashMap 类型的负载转换为 JSON 数组格式。 HashMap的样本数据

键:值 MK1 : T1 MK2:T2 MK3 : T3

从 DataWeave 1.0 在 Mule 中生成的目标格式

{
  "cars": [
    {
      "makeId": "MK1",
      "makeName": "T1"
    },
    {
      "makeId": "MK2",
      "makeName": "T2"
    },
    {
      "makeId": "MK3",
      "makeName": "T3"
    }
  ]
}

是否可以将key和value(均为字符串类型)的HashMap转换成上面定义的JSON数组格式。

【问题讨论】:

    标签: mule esb mulesoft


    【解决方案1】:

    这个脚本产生了预期的结果:

    %dw 1.0
    %output application/json
    ---
    {
        "cars": payload pluck { 
            makeId: $, 
            makeName: $$ 
        }   
    }
    

    输出:

    {
      "cars": [
        {
          "makeId": "T1",
          "makeName": "MK1"
        },
        {
          "makeId": "T3",
          "makeName": "MK3"
        },
        {
          "makeId": "T2",
          "makeName": "MK2"
        }
      ]
    }
    

    【讨论】:

      【解决方案2】:

      在了解了 Mule dataweave 中地图运算符的一些详细信息后,我能够使用下面的转换器解决问题。

      %dw 1.0

      %输出应用程序/json

      “汽车”: 有效载荷映射{ 制作ID:$, 品牌名称:$$ }

      【讨论】:

      • 这个答案没有提供预期的结果。在 map 操作中,'$$' 返回键的索引(一个数字),而不是它的值。
      • 对我来说也一样,它只是返回 id 索引,与键的实际字符串值无关。
      猜你喜欢
      • 2022-12-08
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 2015-06-20
      • 2018-07-30
      相关资源
      最近更新 更多