如何在将对象转换为json时排除空值

如何在将对象转换为json时排除空值,json,mule,anypoint-studio,jackson2,jackson-databind,Json,Mule,Anypoint Studio,Jackson2,Jackson Databind,我正在使用MuleSoft Anypoint Studio,我需要将JSON负载转换为最终的XML。在此转换过程中,需要排除所有空字段。有些值不是通过POST请求发送的,我希望在最终结果XML文件中不会看到它们,但实际情况并非如此。例如,在JSON POST请求中,未发送值字段,该字段在Mule中变为null,因此它不应出现在XML文件中,但仍作为写入。我主要在JSON的对象转换器方面遇到问题 我已尝试配置自定义映射器 <spring:beans> <spring:

我正在使用
MuleSoft Anypoint Studio
,我需要将JSON负载转换为最终的XML。在此转换过程中,需要排除所有空字段。有些值不是通过POST请求发送的,我希望在最终结果XML文件中不会看到它们,但实际情况并非如此。例如,在JSON POST请求中,未发送
字段,该字段在Mule中变为null,因此它不应出现在XML文件中,但仍作为
写入。我主要在JSON的
对象
转换器方面遇到问题

我已尝试配置自定义映射器

 <spring:beans>
     <spring:bean id="Bean" name="NonNullMapper" class="org.codehaus.jackson.map.ObjectMapper">
         <spring:property name="SerializationInclusion">
            <spring:value type="org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion">NON_NULL</spring:value>
         </spring:property>
     </spring:bean>
我和你一起工作

  • 骡子3.9.0
  • Anypoint Studio 6.4
  • com.fasterxml.jackson,在某些地方还有org.codehaus.jackson

我非常感谢任何帮助或提示。

鉴于Mule中的这一点,您可以使用DataWeave来转换有效负载。设置XML编写器属性skipNullOn可以得到所需的结果

范例

%output application/xml skipNullOn="payload"
---
payload
More than one object of type class org.codehaus.jackson.map.ObjectMapper registered but only one expected
%output application/xml skipNullOn="payload"
---
payload