Nabavite vrijednost ključem u JSONArrayu

1. Pregled

JSON je lagan i o jeziku neovisan format razmjene podataka koji se koristi za većinu komunikacija klijent-poslužitelj.

JSONObject i JSONArray su dvije uobičajene klase obično dostupne u većini JSON-ovih knjižnica za obradu. A JSONObject pohranjuje neuređene parove ključ / vrijednost, slično kao Java Karta provedba. A JSONArray, s druge strane, je uređeni slijed vrijednosti slično kao Popis ili a Vektor na Javi.

U ovom ćemo uputstvu koristiti JSON-Java (org.json) knjižnica i naučiti kako obraditi a JSONArray za izdvajanje vrijednosti za zadati ključ. Ako je potrebno, imamo na raspolaganju uvod u ovu knjižnicu.

2. Ovisnost Mavena

Prvo ćemo započeti dodavanjem donje ovisnosti u naš POM:

 org.json json 20180813 

Uvijek možemo saznati najnoviju verziju JSON-Java na Maven Central.

3. Stvaranje konteksta

JSON poruka obično se sastoji od JSON objekata i nizova koji mogu biti ugniježđeni jedni u druge. A JSONArray objekt je zatvoren u uglate zagrade [ ] dok a JSONObject je zatvoren unutar kovrčavih zagrada {}. Na primjer, uzmimo u obzir ovu JSON poruku:

[{"name": "John", "city": "chicago", "age": "22"}, {"name": "Gary", "city": "florida", "age": "35 "}, {" name ":" Selena "," city ":" vegas "," age ":" 18 "}]

Jasno je da je to niz JSON objekata. Svaki JSON objekt u ovom nizu predstavlja evidenciju naših kupaca ime, dob, i Grad kao njegovi atributi ili ključevi.

4. Obrada JSONArray

S obzirom na gornji JSON, što ako želimo saznati imena svih naših kupaca? Drugim riječima, ako dobijete ključ, "Ime" u našem primjeru, kako možemo potražiti sve vrijednosti mapirane na taj ključ u danom JSON polju?

Kao što znamo, a JSONArray je popis JSON objekata. Dakle, pronađimo sve vrijednosti za zadani ključ:

javni popis getValuesForGivenKey (niz jsonArrayStr, ključ niza) {JSONArray jsonArray = novi JSONArray (jsonArrayStr); vrati IntStream.range (0, jsonArray.length ()) .mapToObj (index -> ((JSONObject) jsonArray.get (index)). optString (key)) .collect (Collectors.toList ()); }

U prethodnom primjeru:

  • Prvo, pregledavamo čitav popis objekata u JSON polju
  • Zatim za svaku JSONObject, dobivamo vrijednost mapiranu na zadati ključ

Također, metoda optString () vraća prazan niz ako takav ključ ne postoji.

Na zazivanje getValuesForGivenKey (jsonArrayStr, “ime”) gdje jsonArrayStr je naš primjer JSON, dobit ćemo Popis svih imena kao izlaz:

[John, Gary, Selena]

5. Zaključak

U ovom kratkom članku naučili smo kako raščlaniti a JSONArray da biste dobili sve preslikane vrijednosti za zadani ključ. Evo, koristili smo JSON-Java (org.json) knjižnica.

JSON.simple je još jedna slična i moćna alternativa za rad s JSON-om u Javi. Slobodno istražite.

Kao i obično, cjeloviti izvorni kod dostupan je na Githubu.


$config[zx-auto] not found$config[zx-overlay] not found