2017-01-30 47 views
1

我有一个跟随的json作为响应。 我想在发送到目标之前删除空值。 如何从Mule/Java组件中跳过json的空值也很好。 注意:自从我使用社区版以来,我没有使用dataweave。跳过json中的mule

{ “ID”:“1234”, “值”:空 }

回答

0

为了应对Java组件JSON消息,我通常使用:net.sf.json.JSONObjectnet.sf.json.JsonConfignet.sf.json.util.PropertyFilter

将它们放入transformMessage方法中,以拦截传入的JSON消息并删除所有空属性。

JsonConfig jsonConfig = new JsonConfig(); 
jsonConfig.setJsonPropertyFilter(new PropertyFilter() { 
    @Override 
    public boolean apply(Object source, String name, Object value) { 
     return (value == null); 
    } 
}); 

return JSONObject.fromObject(message.getPayload(), jsonConfig); 
0

最简单的部分是使用Dataweave但你提到你正在使用的社区版在这种情况下,我会建议创建你自己的自定义转换器,你得到这个有效载荷,并手动检查这个空值并删除它。