我有一个以下的json作为回应。 我想在发送到目标之前删除null。 如何从Mule / Java组件中的json跳过空值也没问题。 注意:因为我使用的是社区版,所以我没有使用数据编织。
{ " ID":" 1234&#34 ;, "值":空 }
答案 0 :(得分:0)
最简单的部分是使用Dataweave,但正如您所提到的,您正在使用社区版本,在这种情况下,我建议您创建自己的自定义转换器,在此处获取此有效负载并手动检查此空值并将其删除。
答案 1 :(得分:0)
要处理Java组件中的JSON消息,通常我会使用: net.sf.json.JSONObject , net.sf.json.JsonConfig 和 net.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);