假设以下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 '$$':$
)
答案 0 :(得分:1)
如果将表达式包装在括号中,那么您尝试过的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')]
希望有所帮助!
答案 1 :(得分:0)
您可以使用以下方法解决此问题。
B
答案 2 :(得分:0)
此外,如果还需要小写一个值,则其将类似于:
%dw 1.0
%output application/json
---
{
result : payload mapObject (
(lower $$) : (lower $)
)
}