Mulesoft Dataweave 将 mapObject 的键转换为小写
Mulesoft Dataweave Converting the key of a mapObject to lower case
假设以下 json KEY1 和 KEY2 大写。 KEY1和KEY2需要转为小写
{
"KEY1": {
"subkey1": "subval1",
"subkey2": "subval2"
},
"KEY2": {
"subkey1": "subval1",
"subkey2": "subval2"
}
}
需要使用数据编织将其转换为以下 json。
{
"key1": {
"subkey1": "subval1",
"subkey2": "subval2"
},
"key2": {
"subkey1": "subval1",
"subkey2": "subval2"
}
}
我尝试了下面的 DW 语法,但是没有用
result : payload mapObject (
lower '$$':$
)
如果将表达式括在括号中,您尝试的 DW 应该可以工作。这确保 lower
运算符首先应用于每个键,然后在映射中使用该值。所以对于你的例子:
%dw 1.0
%output application/json
---
{
result : payload mapObject (
(lower '$$') : $
)
}
有趣的是,我在使用此 DW 语法的转换消息中收到错误 (mismatched input ':' expecting ')'
),但我能够 运行 该项目而没有 Anypoint Studio 和 DW 的投诉 运行很好。它在 MEL 中也适用于以下内容:
#[dw("{result : payload mapObject ( (lower '$$' ) : $)}", 'application/json')]
希望对您有所帮助!
您可以使用以下方法解决问题。
%dw 2.0
output application/json
---
{ result: payload mapObject (
(lower ('$$')): $
)
}
此外,如果还需要小写一个值,那么它会像:
%dw 1.0
%output application/json
---
{
result : payload mapObject (
(lower $$) : (lower $)
)
}
假设以下 json KEY1 和 KEY2 大写。 KEY1和KEY2需要转为小写
{
"KEY1": {
"subkey1": "subval1",
"subkey2": "subval2"
},
"KEY2": {
"subkey1": "subval1",
"subkey2": "subval2"
}
}
需要使用数据编织将其转换为以下 json。
{
"key1": {
"subkey1": "subval1",
"subkey2": "subval2"
},
"key2": {
"subkey1": "subval1",
"subkey2": "subval2"
}
}
我尝试了下面的 DW 语法,但是没有用
result : payload mapObject (
lower '$$':$
)
如果将表达式括在括号中,您尝试的 DW 应该可以工作。这确保 lower
运算符首先应用于每个键,然后在映射中使用该值。所以对于你的例子:
%dw 1.0
%output application/json
---
{
result : payload mapObject (
(lower '$$') : $
)
}
有趣的是,我在使用此 DW 语法的转换消息中收到错误 (mismatched input ':' expecting ')'
),但我能够 运行 该项目而没有 Anypoint Studio 和 DW 的投诉 运行很好。它在 MEL 中也适用于以下内容:
#[dw("{result : payload mapObject ( (lower '$$' ) : $)}", 'application/json')]
希望对您有所帮助!
您可以使用以下方法解决问题。
%dw 2.0
output application/json
---
{ result: payload mapObject (
(lower ('$$')): $
)
}
此外,如果还需要小写一个值,那么它会像:
%dw 1.0
%output application/json
---
{
result : payload mapObject (
(lower $$) : (lower $)
)
}