Apache Camel - GSON格式化程序

时间:2013-03-28 15:36:49

标签: json spring apache gson apache-camel

当json对象来自Apache-Camel上下文时,我想格式化我的gson。在我的application_context.xml中,相关字段是这样的:

 <camel:camelContext>
        <camel:dataFormats>
            <camel:json  id="gson" library="Gson" unmarshalTypeName="com.pzt.blz.fraud.domain.Payment"  />
        </camel:dataFormats>
        <camel:route>
            <camel:from uri="rabbitmq::blz.service.component.fraud?autodelete=false&amp;durable=true"/>
            <camel:unmarshal ref="gson"></camel:unmarshal>
               <camel:process ref="fraudProccessor"></camel:process>
            <camel:marshal ref="gson"></camel:marshal>
            <camel:inOnly uri="rabbitmq::blz.service.component.fraud-reply?autodelete=false&amp;durable=true"/>
        </camel:route>
    </camel:camelContext>

Camel:unmarshal和Camel:marshal部分正在做json对象,反之亦然。但是我想在这个文件中添加一些属性,如:

public Gson createGson(){
    return new GsonBuilder().
            setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).
            setPrettyPrinting().
            serializeNulls().
            create();

}

如何将setFieldNamingPolicy设置为LOWER_CASE_WITH_UNDERSCORES或LOWER_CASE_WITH_DASHES等...

有没有机会在Camel上格式化?这些更改应该在我的application_context.xml文件中完成。

感谢所有回复......

1 个答案:

答案 0 :(得分:0)

我认为我们没有在XML DSL中公开这些选项,因此您可以在gson数据格式上配置它。我已经在未来的Camel版本中记录了一个实现此功能的票证:https://issues.apache.org/jira/browse/CAMEL-6227