【问题标题】:Apache Camel: Convert JSON to a POJO using Camel methodsApache Camel:使用 Camel 方法将 JSON 转换为 POJO
【发布时间】:2012-04-17 12:39:45
【问题描述】:

我有一个 REST 服务器,它在响应正文中发送 JSON。我最近开始阅读有关 Apache Camel 的内容。我使用以下向我的 REST 服务发送请求。

from("direct:start").setHeader("token", simple("234da"))
                            .to("http://localhost:8088/foo/bar/?foo1=bar1");

现在响应将是 JSON,有什么方法可以使用 to() 之前的某种方法将这个 JSON 直接导入 POJO(类似这样)?

to("http://localhost:8088/foo/bar/?foo1=bar1").toPOJO();

我更喜欢非 Spring 解决方案。

谢谢

【问题讨论】:

    标签: java json apache-camel


    【解决方案1】:

    我身边的小细节 - 虽然晚了

    创建 jsonFormatter 然后用你需要的类解组
    JsonDataFormat jsonDataFormat = new JsonDataFormat(JsonLibrary.Jackson);
    这可以用于编组

    from("direct:consume-rest")
    .log("calling bean method...")
    .to("http://localhost:8080/greeting?name=baba")
    //.process(svProcessor) // any extra process if you want
    .unmarshal().json(JsonLibrary.Jackson, Greeting.class)
    .bean(GreetingHelper.class, "print")
    .log("converted to bean ...")
    .end()
    ;

    助手类方法
    public void print (@Body Greeting greeting) {

    【讨论】:

      【解决方案2】:

      Apache Camel 提供了一个组件,用于将 POJO 编组到 JSON 和从 JSON 解组。

      在你的情况下,它会是:

       from("direct:start").setHeader("token", simple("234da"))
       .to("http://localhost:8088/foo/bar/?foo1=bar1")
       .unmarshal().json();
      

      顺便说一句,你可能需要配置你的 json 库来做这件事,我建议你看看the official configuration

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-10
        • 2011-12-05
        • 1970-01-01
        • 2019-07-02
        相关资源
        最近更新 更多