የ JSON ምላሽን ከ REST- በተረጋገጠ ጋር እንዴት መተንተን እንደሚቻል

በዚህ የኤ.ፒ.አይ. የሙከራ ማጠናከሪያ ትምህርት ውስጥ የ JSON ን ምላሽ እንዴት መተንተን እና በ REST የተረጋገጠ ቤተ-መጽሐፍት በመጠቀም መረጃን ማውጣት እንደሚቻል እንመለከታለን ፡፡

ኤ.ፒ.አይ. ሲሞክሩ በተለምዶ ለሀብት (ለምሳሌ በ GET ወይም POST ጥያቄ) ጥያቄ ያቀርባሉ ፡፡ አገልጋዩ ከምላሽ ጋር ተመልሶ ይመጣል ከዚያም በምላሹ ላይ አንዳንድ ማረጋገጫዎችን ያካሂዳሉ ፡፡



የ JSON ምላሽን እንዴት መተንተን እንደሚቻል

ለዚህ መማሪያ እኔ እጠቀማለሁ JSONPlaceholder ለሙከራ እና ለፕሮቶታይፒንግ የሐሰት የመስመር ላይ REST ኤ.ፒ.አይ. JSONPlaceholder አንዳንድ የሐሰት መረጃዎች በሚፈልጉበት ጊዜ ሁሉ ሊጠቀሙበት የሚችሉት ነፃ የመስመር ላይ REST አገልግሎት ነው ፡፡


በይበልጥ በተለይም የተጠቃሚዎችን የመጨረሻ ነጥብ እጠቀማለሁ jsonplaceholder .

ጥያቄ እና ምላሽ

ከላይ ለተጠቀሰው ሀብት የ GET ጥያቄ ስናቀርብ የተጠቃሚዎችን ዝርዝር የያዘ የ JSON ምላሽ እናገኛለን ፡፡ ይህ ዝርዝር እንደ JSON ድርድር ነው የተወከለው። እያንዳንዱ ድርድር እንደዚህ የመሰለ መዋቅር አለው


{
id: 1,
name: 'Leanne Graham',
username: 'Bret',
email: 'Sincere@april.biz',
address: {
street: 'Kulas Light',
suite: 'Apt. 556',
city: 'Gwenborough',
zipcode: '92998-3874',
geo: {

lat: '-37.3159',

lng: '81.1496'
}
},
phone: '1-770-736-8031 x56442',
website: 'hildegard.org',
company: {
name: 'Romaguera-Crona',
catchPhrase: 'Multi-layered client-server neural-net',
bs: 'harness real-time e-markets'
} }

ስለዚህ ፣ በሙሉ ምላሹ ውስጥ ፣ በድርድሩ ውስጥ አሥር መዝገቦች ይኖራሉ ፣ እያንዳንዳቸው አንድ የ ‹JSON› መዋቅር አላቸው ፣ ግን የተለያዩ እሴቶች ያላቸው ፡፡



ተዛማጅ:

አሁን ከ JSON የተወሰኑ እሴቶችን በመተንተን እና በማውጣት እንጀምር ፡፡

የመጀመሪያው ሙከራ በተለምዶ በድርድሩ ውስጥ ያሉትን የመዝገቦች ብዛት መቁጠር ይሆናል ፣ ስለሆነም በዚህ እንጀምር።


import io.restassured.RestAssured; import io.restassured.http.ContentType; import io.restassured.parsing.Parser; import io.restassured.response.Response; import java.util.List; import static io.restassured.RestAssured.given; public class RestTest {
public static Response doGetRequest(String endpoint) {
RestAssured.defaultParser = Parser.JSON;

return

given().headers('Content-Type', ContentType.JSON, 'Accept', ContentType.JSON).


when().get(endpoint).


then().contentType(ContentType.JSON).extract().response();
}
public static void main(String[] args) {
Response response = doGetRequest('https://jsonplaceholder.typicode.com/users');

List jsonResponse = response.jsonPath().getList('$');

System.out.println(jsonResponse.size());
} }

ከላይ የተጠቀሰው ጥሪ ውጤት 10. ማስታወሻ $ ማስታወሻ ማለት የስር አካል ነው ፡፡

የ JSON ድርድሮችን እና ዝርዝሮችን መተንተን

ከላይ በተጠቀሰው ምሳሌ ውስጥ የሁሉም ግቤቶች የተጠቃሚ ስም ማግኘት ከፈለግን ልንጠቀምባቸው እንችላለን

String usernames = response.jsonPath().getString('username'); System.out.println(usernames);

ይህ ድርድርን እንደዚህ ያትማል

[Bret, Antonette, Samantha, Karianne, Kamren, Leopoldo_Corkery, Elwyn.Skiles, Maxime_Nienow, Delphine, Moriah.Stanton]

ከዚያ ልንጠቀምበት የምንችለውን የመጀመሪያውን ግቤት የተጠቃሚ ስም ማግኘት ከፈለግን


String usernames = response.jsonPath().getString('username[0]');

ይህ የመጀመሪያውን የተጠቃሚ ስም ያትማል

Bret

ልንጠቀምባቸው የምንችላቸውን ዝርዝር በመጠቀም-

List jsonResponse = response.jsonPath().getList('username'); System.out.println(jsonResponse.get(0));

ይህ የመጀመሪያውን የተጠቃሚ ስም ያትማል

Bret

JSON ድርድር ዝርዝር እና HashMap ን መተንተን

ከላይ ያለውን የ JSON መዋቅርን በመመልከት ኩባንያው በእውነቱ ካርታ ነው ፡፡ አንድ መዝገብ ብቻ ቢኖረን ኖሮ ልንጠቀምባቸው እንችላለን


Response response = doGetRequest('https://jsonplaceholder.typicode.com/users/1'); Map company = response.jsonPath().getMap('company'); System.out.println(company.get('name'));

የሚያትመው

Romaguera-Crona

ግን ምላሹ ብዙዎችን ከመለሰ እና የመጀመሪያውን የኩባንያ ስም ለማውጣት ከፈለግን ልንጠቀም እንችላለን

Response response = doGetRequest('https://jsonplaceholder.typicode.com/users/'); Map company = response.jsonPath().getMap('company[0]'); System.out.println(company.get('name'));

እንደ አማራጭ እኛ ልንጠቀምባቸው እንችላለን

Response response = doGetRequest('https://jsonplaceholder.typicode.com/users/'); List companies = response.jsonPath().getList('company'); System.out.println(companies.get(0).get('name'));

ሁለቱም ያትማሉ


Romaguera-Crona