防止骆驼杰克逊删除引号

时间:2018-12-28 19:54:17

标签: jackson apache-camel camel-jackson

我正在为REST服务开发骆驼路线。我的任务是添加一个POST,在其中我需要从发送的json中取出令牌。我正在执行以下操作:

.unmarshal().json(JsonLibrary.Jackson, Token.class)

我在pom文件中添加了“ camel-jackson”依赖项,并且工作正常。

问题:现在,所有即将到来的json都已去除了双引号。所以下面的json:

{"name": "John Doe", "job": "farmer"}

最终显示为:

{name:John Doe,job:farmer}

对于我的某些代码,我需要双引号。我试图做一些配置我的休息路线的尝试,但是没有运气。任何人都有解决的想法?

1 个答案:

答案 0 :(得分:0)

您在评论中提到了自己

restConfiguration()
    .component("jetty") 
    .scheme("https") 
    .bindingMode(RestBindingMode.auto) 
    .dataFormatProperty("prettyPrint", "true") 
    .port(8443);

您没有提及您的路线。但是,如果您正在使用bindingMode,它将在get()/ post()上期望有一个type(),该类型将用于将json解组。听起来您只想对要添加的新POST进行此操作,那么为什么不对post()进行绑定,而不是对restConfiguration()进行全局绑定?

例如

restConfiguration()
    .component("jetty") 
    .scheme("https") 
    .dataFormatProperty("prettyPrint", "true") 
    .port(8443);

rest("/words")
    .post("/new/post/url")
        .bindingMode(RestBindingMode.auto) 
        .type(YourPojo.class)
        ... 
    .get("existing/stuff")
        ...