【发布时间】:2017-02-07 08:33:59
【问题描述】:
我有一个以下 json 作为响应。 我想在发送到目标之前删除 null 。 如何在 Mule/Java 组件中跳过 json 中的空值也可以。 注意:我没有使用 dataweave,因为我使用的是社区版。
{ "id":"1234", “价值”:空 }
【问题讨论】:
我有一个以下 json 作为响应。 我想在发送到目标之前删除 null 。 如何在 Mule/Java 组件中跳过 json 中的空值也可以。 注意:我没有使用 dataweave,因为我使用的是社区版。
{ "id":"1234", “价值”:空 }
【问题讨论】:
在Java组件中处理JSON消息,我通常使用:net.sf.json.JSONObject、net.sf.json.JsonConfig和 net.sf.json.util.PropertyFilter.
将它们放在 transformMessage 方法中,以拦截传入的 JSON 消息并删除所有 null 属性。
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);
【讨论】:
最简单的部分是使用 Dataweave,但正如您提到的那样,在这种情况下您使用的是社区版,我建议您创建自己的自定义转换器,在其中获取此有效负载并手动检查此空值并将其删除。
【讨论】: