Beaucoup aiment le processeur Jackson JSON , et il est supporté dans RESTEasy. Dans ce didacticiel, nous vous montrons comment convertir un objet au format JSON et le renvoyer au client.
1. RESTEasy Jackson
Pour intégrer Jackson à RESTEasy, il vous suffit d’inclure « resteasy-jackson-provider.jar ».
-
Remarque ** Lorsque RESTEasy a renvoyé une sortie JSON, il utilise le fournisseur Jackson pour la convertir automatiquement. Vous n’avez pas besoin de coder une seule ligne pour intégrer les deux.
Fichier: 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. Objet simple
Un objet simple, converti plus tard au format 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
Annotez la méthode avec
@Produces (" application/json ")
. RESTEasy utilisera le fournisseur Jackson pour gérer la conversion JSON automatiquement.
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();
}
}
-
Analyse automatique RESTEasy désactivée. ** Vous devez désactiver l’analyse automatique RESTEasy et enregistrer votre service REST manuellement, sinon vous obtiendrez le lien suivant://services Web/jax-rs/illégale d’injecter un corps de message dans-un-singleton-dans-public-org-codehaus-jackson-jaxrs-jacksonjsonprovider/[erreur].
J’espère que ça sera corrigé dans la prochaine version
Fichier: 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. Démo
Voir la méthode GET et POST.
-
1. Méthode GET Lorsque le modèle d’URI “ /json/product/get ** ” est demandé, le fichier JSON suivant est renvoyé.
{
"qty":999,
"name":"iPad 3"
}
-
2. Méthode POST Vous pouvez “poster” la chaîne de format json dans le modèle d’URI “ /json/product/post ** “, il sera automatiquement converti en “Produit”.
Télécharger le code source
Téléchargez-le - lien://wp-content/uploads/2011/07/JAX-RS-Download-JSON-Jackson-Example.zip[JAX-RS-Download-JSON-Jackson-Example.zip](8 Ko)
Références
Support via Jackson]
lien://tag/intégration/[intégration]lien://tag/jackson/[jackson]lien://tag/json/[json]lien://tag/resteasy/[resteasy]