Ungayibonisa njani Impendulo yeJSON ngokuQINISEKA ukuqinisekiswa

Kule tutorial yokuvavanywa kwe-API, sijonga indlela yokuhluza impendulo yeJSON kunye nokukhupha ulwazi sisebenzisa ithala leencwadi eliqinisekisiweyo.

Xa kuvavanywa i-API, ngesiqhelo wenza isicelo kubutyebi, (umzekelo, nge-GET okanye POST isicelo). Umncedisi ubuya nempendulo kwaye emva koko wenza uqinisekiso oluthile kwimpendulo.



Ungayibonisa njani Impendulo yeJSON

Kule khokelo, ndiza kusebenzisa Umgcini weNdawo yeJSON eyi-fake online ye-REST API yovavanyo kunye nePrototyping. IJSONPlaceholder yinkonzo yasimahla ye-Intanethi REST onokuyisebenzisa nanini na xa ufuna idatha engeyiyo.


Ngokukodwa, ndiza kuba ndisebenzisa isiphelo sabasebenzisi json obambe indawo .

Isicelo kunye neMpendulo

Xa sisenza isicelo seGET kwezi zixhobo zingasentla, sifumana impendulo yeJSON enoluhlu lwabasebenzisi. Olu luhlu lumelwe njengeJSON Array. Uluhlu ngalunye lunento enje:


{
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'
} }

Ke ngoko, kwimpendulo epheleleyo, kuya kubakho iirekhodi ezilishumi kuludwe, nganye inesakhiwo esifanayo seJSON, kodwa enexabiso elahlukileyo.



Idibeneyo:

Ngoku, masiqale ngokudibanisa kunye nokukhupha amaxabiso athile kwiJSON.

Uvavanyo lokuqala luya kuba ukubala inani leerekhodi kuluhlu, ke makhe siqale ngaloo nto.


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());
} }

Iziphumo zale fowuni ingentla ziya kuprinta 10. Qaphela i $ notation oko kuthetha ukuba ingcambu.

Ukwahlulahlula iJSON Arrays kunye neeListi

Kumzekelo ongentla, ukuba sifuna ukufumana igama lomsebenzisi lawo onke amangenelo, sinokusebenzisa:

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

Oku kungaprinta uluhlu olunje:

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

Ukuba sifuna ukufumana igama lomsebenzisi lokungena okokuqala esinokulisebenzisa:


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

Oku kuya kuprinta igama lomsebenzisi lokuqala:

Bret

Sebenzisa uLuhlu esinokulusebenzisa:

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

Oku kuya kuprinta igama lomsebenzisi lokuqala:

Bret

Ukwahlulahlulahlula iJSON ArrayList kunye neHashMap

Ukujonga esi sakhiwo singasentla seJSON, inkampani yeyona mephu. Ukuba kuphela sinerekhodi enye, sinokusebenzisa:


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

eya kuprinta:

Romaguera-Crona

Kodwa ukuba impendulo ibuyisa uluhlu kwaye sifuna ukukhupha igama lokuqala lenkampani, sinokusebenzisa:

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

Ngenye indlela, sinokusebenzisa:

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

Zombini ezi zinto ziya kuprinta:


Romaguera-Crona