Пример JSON с RESTEasy Джексоном

Многим нравится процессор 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]