Repos assuré. Est-il possible d'extraire de la valeur de requête json?
Je reçois la réponse de cette façon:
Response response = expect().statusCode(200).given().body(requestBody).contentType("application/json")
.when().post("/admin");
String responseBody = response.getBody().asString();
J'ai un json dans responseBody:
{"user_id":39}
Pourrais-je extraire à l'aide de la chaîne de repos assuré la méthode que cette valeur = 39?
- Essayez de regarder pour plus d'informations sur comment parser du JSON en Java -- pour convertir au format JSON (dans votre cas) sur une Carte. Vous, malheureusement, trouver environ 20 différentes façons de le faire, dont la plupart sont trop compliquées, mais la Java des gourous semblent comme de cette façon.
- Merci, @HotLicks, je savais que cette décision, j'étais à la recherche de la réponse avec le repos est assuré uniquement. On dirait qu'il ne pouvait pas le faire.
- c'est une vieille question, mais il me semble que c'est miss-étiquetés. votre titre est "extraire de la valeur à partir de la requête json" , ne devrait-elle pas être "extrait de l'étiquette de la réponse json"? Toutes les réponses ci-dessous suppose que vous vouliez dire la réponse ...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez aussi faire comme ceci si vous n'êtes intéressé que par l'extraction de la "user_id":
Dans sa forme la plus simple, il ressemble à ceci:
Il existe plusieurs façons. Personnellement, j'utilise les suivantes:
l'extraction de valeur unique:
travailler avec la totalité de la réponse lorsque vous avez besoin de plus qu'un:
l'extraire à l'aide de la JsonPath pour obtenir le bon type:
Dernière est vraiment utile lorsque vous voulez faire correspondre la valeur et le type c'est à dire
Le reste assurée documentation est assez descriptif et complet. Il existe de nombreuses façons d'obtenir ce que vous demandez: https://github.com/jayway/rest-assured/wiki/Usage
J'ai trouvé la réponse 🙂
Utilisation JsonPath ou XmlPath (dans le cas où vous avez XML) pour obtenir des données à partir du corps de la réponse.
Dans mon cas:
Pour sérialiser la réponse dans une classe, définir la cible de la classe
Et la carte en réponse à:
Vous devez avoir Jackson ou Gson dans le classpath de la documentation: http://rest-assured.googlecode.com/svn/tags/2.3.1/apidocs/com/jayway/restassured/response/ResponseBodyExtractionOptions.html#as(java.lang.Class)