Få en verdi med nøkkel i en JSONArray

1. Oversikt

JSON er et lett og språkuavhengig datautvekslingsformat som brukes til de fleste klient-server-kommunikasjoner.

JSONObject og JSONArray er de to vanlige klassene som vanligvis er tilgjengelige i de fleste av JSON-behandlingsbibliotekene. EN JSONObject lagrer uordnede nøkkelverdipar, omtrent som en Java Kart gjennomføring. EN JSONArrayderimot er en ordnet rekkefølge av verdier omtrent som en Liste eller a Vector i Java.

I denne opplæringen bruker vi JSON-Java (org.json) bibliotek og lære å behandle en JSONArray for å hente ut verdien for en gitt nøkkel. Om nødvendig har vi tilgjengelig en introduksjon til dette biblioteket.

2. Maven avhengighet

Vi begynner først med å legge til avhengigheten nedenfor i vår POM:

 org.json json 20180813 

Vi kan alltid finne ut den nyeste versjonen av JSON-Java på Maven Central.

3. Kontekstoppbygging

En JSON-melding består vanligvis av JSON-objekter og matriser som kan være nestet i hverandre. EN JSONArray objektet er omsluttet av firkantede parenteser [ ] mens a JSONObject er lukket i krøllete bukseseler {}. La oss for eksempel vurdere denne JSON-meldingen:

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

Det er tydelig at det er en rekke JSON-objekter. Hvert JSON-objekt i denne matrisen representerer vår kundepost et navn, alder, og by som dets attributter eller nøkler.

4. Behandling JSONArray

Gitt JSON ovenfor, hva om vi ønsker å finne ut navnene på alle våre kunder? Med andre ord, gitt en nøkkel, "Navn" i vårt eksempel, hvordan kan vi gå frem for å finne alle verdiene som er tilordnet den nøkkelen i et gitt JSON-utvalg?

Som vi vet, a JSONArray er en liste over JSON-objekter. Så la oss finne alle verdier for en gitt nøkkel:

public List getValuesForGivenKey (String jsonArrayStr, String key) {JSONArray jsonArray = new JSONArray (jsonArrayStr); return IntStream.range (0, jsonArray.length ()) .mapToObj (index -> ((JSONObject) jsonArray.get (index)). optString (key)) .collect (Collectors.toList ()); }

I forrige eksempel:

  • For det første gjentar vi hele listen over objekter i et JSON-utvalg
  • Så for hver JSONObject, får vi verdien tilordnet den gitte nøkkelen

Også metoden optString () returnerer en tom streng hvis det ikke finnes en slik nøkkel.

Ved påkalling getValuesForGivenKey (jsonArrayStr, “navn”) hvor jsonArrayStr er vårt eksempel JSON, vi får en Liste av alle navn som utdata:

[John, Gary, Selena]

5. Konklusjon

I denne raske artikkelen lærte vi å analysere a JSONArray for å få alle de tilordnede verdiene for en gitt nøkkel. Her har vi brukt JSON-Java (org.json) bibliotek.

JSON.simple er enda et lignende og kraftig alternativ for å jobbe med JSON i Java. Ta gjerne utforske.

Som vanlig er den komplette kildekoden tilgjengelig på Github.


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