如何从mule中的json对象替换有效负载

时间:2016-12-26 14:20:51

标签: regex mule mule-studio mule-component mule-el

准备好json请求,如下所示。

[{
    "type": "John",
    "attributes": {
        "AA": [{
            "value": "1234"
        }]
    }
}, 
{

}
]

我需要用空的替换下面的,即空白'

, 
    {

    }

请您为此提供解决方案。

最后它应该如下所示。

[{
        "type": "John",
        "attributes": {
            "AA": [{
                "value": "1234"
            }]
        }
    }
]

4 个答案:

答案 0 :(得分:0)

此正则表达式与给定序列匹配,但您可能需要更改它以接受所有可能性:

/, \n\{\W+?\}/

只需用无替换匹配。

答案 1 :(得分:0)

您是以JSON对象还是以字符串形式获得响应?

如果您将响应作为对象获取,则必须在应用替换函数之前对其进行字符串化:

payload = JSON.parse(JSON.stringify(payload).replace(/,\{\}/, ''))

如果您在上面发布的回复已经过字符串化并且您尚未将其解析为对象,则该方法为:

payload = payload.replace(/\,\s+\n\s+\{\n\s+\}/,'')

答案 2 :(得分:0)

为了达到这个目的,我们可以在转换消息或MEL中使用DataWeave表达式。

在这种情况下,我更喜欢在MEL中使用它:#[dw('payload filter (sizeOf $) > 0')]

答案 3 :(得分:0)

您可以在此处使用flatten运算符,如下所示。它应该删除空json。您也可以尝试将{}替换为null并添加skipnullon="everywhere"

flatten payload