Многим нравится процессор JSON JSON , и он поддерживается в RESTEasy. В этом руководстве мы покажем вам, как преобразовать объект в формат JSON и вернуть его клиенту.
1. RESTEasy + Джексон
Чтобы интегрировать Джексона с RESTEasy, вам просто нужно включить « resteasy-jackson-provider.jar ».
-
Примечание ** Когда RESTEasy возвращает вывод json, он использует провайдера Jackson для его автоматического преобразования. Вам не нужно кодировать одну строку для интеграции обоих.
File: pom.xml
<repositories> <repository> <id>JBoss repository</id> <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>2.2.1.GA</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jackson-provider</artifactId> <version>2.2.1.GA</version> </dependency> </dependencies>
2. Простой объект
Простой объект, затем преобразовать его в формат JSON.
package com.mkyong.rest; public class Product { String name; int qty; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getQty() { return qty; } public void setQty(int qty) { this.qty = qty; } }
3. JAX-RS
Аннотируйте метод с помощью
@Produces (" application/json ")
. RESTEasy будет использовать провайдера Jackson для автоматической обработки преобразования JSON.
import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; @Path("/json/product") public class JSONService { @GET @Path("/get") @Produces("application/json") public Product getProductInJSON() { Product product = new Product(); product.setName("iPad 3"); product.setQty(999); return product; } @POST @Path("/post") @Consumes("application/json") public Response createProductInJSON(Product product) { String result = "Product created : " + product; return Response.status(201).entity(result).build(); } }
-
Отключено автоматическое сканирование RESTEasy. ** Вы должны отключить автоматическое сканирование RESTEasy и зарегистрировать службу REST вручную, в противном случае вы перейдете по этой ссылке://webservices/jax-rs/недопустимый для ввода-сообщения-тела- в-а-одиночка-INTO-государственно-орг-Codehaus-ДЖЕКСОН-jaxrs-jacksonjsonprovider/[ошибка].
Надеюсь, это будет исправлено в следующем выпуске.
File: web.xml
<!-- disabled auto scan <context-param> <param-name>resteasy.scan</param-name> <param-value>true</param-value> </context-param> --> <context-param> <param-name>resteasy.resources</param-name> <param-value>com.mkyong.rest.JSONService</param-value> </context-param>
4. Демо
Смотрите метод GET и POST.
-
1. Метод GET + При запросе шаблона URI « /json/product/get ** » будет возвращен следующий файл JSON
{ "qty":999, "name":"iPad 3" }
-
2. Метод POST Вы можете «отправить» строку формата json в шаблон URI « /json/product/post ** », она автоматически преобразуется в «Product».
Скачать исходный код
Загрузите его - ссылка://wp-content/uploads/2011/07/JAX-RS-Download-JSON-Jackson-Example.zip[JAX-RS-Download-JSON-Jackson-Example.zip](8 КБ)
Рекомендации
Поддержка через Джексона]
ссылка://тег/интеграция/[интеграция]ссылка://тег/джексон/[джексон]ссылка://тег/json/[json]ссылка://тег/resteasy/[resteasy]