Unmarshal JSON pour Java POJO de JAX-RS
Je suis à la recherche pour obtenir la clé et la valeur de chaque format Json appel et de les utiliser comme des objets java de type Chaîne ou un Entier ,un client rest-je entrer
{
"Nom":"HelloWorld"
}
Et je voudrais récupérer le HelloWorld mappée à sa Clé jusqu'à présent j'ai vu des exemples, mais je suis tout à fait de la difficulté à trouver ce que chaque étiquette est et comment analyser le corps pour lui donner les résultats ci-dessus
@POST
@Path("/SetFeeds")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@JsonCreator
public String setFeed(String jsonBody,@Context UriInfo uriInfo){
...Code to manipulate the body of the request
return response;
}
Les gars, faites-vous les mêmes devoirs: stackoverflow.com/questions/31967164/rest-api-post-request ? Vous êtes à la recherche d'un moyen de convertir en json pour objet java?
OriginalL'auteur kelevra88 | 2015-08-13
Vous devez vous connecter pour publier un commentaire.
Première chose que vous devez comprendre, c'est comment le corps de la requête d'analyse est fait. Dans JAX-RS analyse (ou unmarshalling/désérialisation/whatever) est fait avec
MessageBodyReader
s. Il y a des lecteurs qui peuvent gérer différents Type de Contenu. Par exemple, si vous avez Content-Typeapplication/octet-stream
, il y a un lecteur de unmarshal àbyte[]
ouFile
ouInputStream
. Donc la suite serait de travailler hors de la boîteCela étant dit, JAX-RS implémentations de venir avec très de base de lecteurs pour "facilement convertibles" format. Par exemple, la plupart des demandes peuvent être convertis à
String
, de sorte que vous obtenez ce que l'gratuite pour la plupart des Types de Contenu, comme vous êtes avec votre code actuel.Si nous voulons que le plus de types de données complexes, comme votre
HelloWorld
pour le Type de Contenuapplication/json
, il n'y a pas de lecteur standard pour cela. Pour que cela fonctionne, nous devons créer notre propre lecteur, ou l'utilisation d'une bibliothèque qui est livré avec un lecteur. Heureusement, les plus populaires JSON cadre en Java, Jackson, a mis en place un JAX-RS fournisseur qui a un lecteur et un écrivain (pour la sérialisation).Maintenant selon sur quel serveur/JAX-RS application que vous utilisez, les différentes implémentations créer de la lumière wrappers autour du noyau Jackson JAX-RS module. Si je savais que le JAX-RS de mise en œuvre que vous utilisiez, je pourrais vous recommander de wrapper pour l'utiliser, ou vous pouvez oublier le wrapper et juste aller avec la base Jackson module, qui est
Ci-dessus est une dépendance Maven. Si vous n'êtes pas à l'aide de Maven, puis fondamentalement, vous avez besoin de télécharger tous ces pots.
Vous pouvez trouver tous les ici. Il suffit de chercher pour eux individuellement.
Ensuite, vous devez enregistrer le fournisseur. Encore, cela dépend de votre JAX-RS de la mise en œuvre et la façon dont vous êtes en charge la configuration de votre ressource classes. J'aurais besoin de voir votre configuration de l'application (soit web.xml ou le code Java) et peut-être que le serveur que vous utilisez pour vous aider. Pour la plupart de la
JacksonJsonProvider
(qui est le lecteur et l'écrivain) doit être enregistré.Une fois que vous avez enregistré, alors vous devez comprendre les bases de la façon dont Jackson poignée de la serializaion. Dans la plupart de base niveau, Jackson cherche JavaBean propriétés de base (getter/setter) pour correspondre avec JSON propriétés. Par exemple, si vous avez cette fève de la propriété
Le JSON doit ressembler à
{"name": "whatever"}
. Le"name"
clé est la même que la fève de propriété. Le Haricot de la propriété des termes, le nom de la propriété est toutes les lettres après leget/set
avec la première lettre en lowercase.C'est à peu près tout là est à lui. Maintenant, vous pouvez faire
Pour les plus complexes JSON formats, reportez-vous à la Jackson de la documentation ou de poser une question ici.
Aussi loin que l'enregistrement des
JacksonJsonProvider
, si vous rencontrez des problèmes, veuillez fournir les renseignements que j'ai demandé, c'est à dire la configuration de l'application (web.xml ou Java config) et le serveur que vous utilisez.Voir Aussi:
OriginalL'auteur Paul Samsotha