如何在 dataweave 1.0 中将 json 对象转换为小写?

How convert json object to lower case in dataweave 1.0?

你好,我有一个 json 文件作为负载,正在努力将元素及其值转换为小写字母。

{
 "Name" : "John".
 "e-mails" : ['Email1@mail.com','email2@Gmail.com']
}

如果它的值中没有数组,那么这个可以正常工作,就像

但是如何处理数组呢?

预期输出:

{
 "name" : "john".
 "e-mails" : ['email1@mail.com','email2@gmail.com']
}

有什么建议吗?

您需要使用递归函数来覆盖其他类型。

%dw 1.0
%output application/json
%function lowerAll(x)
        x match {
          :object ->  $ mapObject {
                (lower $$): lowerAll($) // assumes all keys are strings
          },   
          :array  ->  $ map lowerAll($),
          :string -> lower $,
          default  ->  $
        }  
---
lowerAll(payload)

输入:

{
 "Name" : "John",
 "e-mails" : ["E1mail1@mail.com","email2@Gmail.com"]
}

输出:

{
  "name": "john",
  "e-mails": [
    "e1mail1@mail.com",
    "email2@gmail.com"
  ]
}