如何在 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"
]
}
你好,我有一个 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"
]
}