Использовать JSON-объект в PUT Restful Service - PullRequest
8 голосов
/ 19 апреля 2011

Я пытаюсь реализовать службу Java RESTful, которая получает объект JSON через запрос PUT и автоматически сопоставляется с объектом 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";
}

1 Ответ

6 голосов
/ 19 апреля 2011

По умолчанию Джерси будет использовать JAXB для обработки сообщений JSON путем использования библиотеки Jettison .

Таким образом, вы можете сделать следующее:

@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:

...