【问题标题】:Consume JSON Object in PUT Restful Service在 PUT Restful 服务中使用 JSON 对象
【发布时间】:2011-08-08 19:45:51
【问题描述】:

我正在尝试在 Java 中实现一个 RESTful 服务,该服务通过 PUT 请求接收 JSON 对象并自动映射到 Java 对象。我设法在 XML 中做到这一点,但我不能用 JSON 做到这一点。这是我想做的:

@PUT
@Consumes(MediaType.APPLICATION_XML)
public String putTodo(JAXBElement<Route> r) {
    Route route = r.getValue();
    route.toString();
    System.out.println("Received PUT XML Request");
    return "ok";
}

这可行,但使用 JSON 会是类似的东西,但我不能使用 JAXB,可以吗?

@PUT
@Consumes(MediaType.APPLICATION_JSON)
public String putTodo(<WHAT DO I PUT HERE>) {
    Route route = r.getValue();
    route.toString();
    System.out.println("Received PUT JSON Request");
    return "ok";
}

【问题讨论】:

    标签: java json rest jaxb jersey


    【解决方案1】:

    默认情况下,Jersey 将使用 JAXB 通过利用 Jettison 库来处理 JSON 消息。

    因此您可以执行以下操作:

    @PUT
    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    public String putTodo(JAXBElement<Route> r) {
        Route route = r.getValue();
        route.toString();
        System.out.println("Received PUT XML/JSON Request");
        return "ok";
    }
    

    有关将 Jettison 与 JAXB 结合使用的更多信息:

    【讨论】:

    • 我试过了,但没用。也许我没有在服务调用中指定 MediaType ;) 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多