Získajte hodnotu kľúčom v JSONArray

1. Prehľad

JSON je ľahký a jazykovo nezávislý formát výmeny údajov používaný pre väčšinu komunikácií klient-server.

JSONObject a JSONArray sú dve bežné triedy zvyčajne dostupné vo väčšine knižníc na spracovanie JSON. A JSONObject ukladá neusporiadané páry kľúč - hodnota, podobne ako Java Mapa implementácia. A JSONArray, na druhej strane je usporiadaná postupnosť hodnôt podobne ako a Zoznam alebo a Vektor v Jave.

V tejto príručke budeme používať JSON-Java (org.json) knižnica a naučiť sa, ako a JSONArray extrahovať hodnotu pre daný kľúč. V prípade potreby máme k dispozícii úvod do tejto knižnice.

2. Závislosť od Maven

Najprv začneme pridaním nižšie uvedenej závislosti do nášho POM:

 org.json json 20180813 

Vždy sa môžeme dozvedieť najnovšiu verziu servera JSON-Java na Maven Central.

3. Zostavenie kontextu

Správa JSON sa zvyčajne skladá z objektov JSON a polí, ktoré môžu byť vnorené jeden do druhého. A JSONArray objekt je uzavretý v hranatých zátvorkách [ ] keďže a JSONObject je uzavretý v zložených zátvorkách {}. Uvažujme napríklad o tejto správe JSON:

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

Je zrejmé, že ide o pole objektov JSON. Každý objekt JSON v tomto poli predstavuje náš záznam o zákazníkovi meno, vek, a mesto ako jeho atribúty alebo kľúče.

4. Spracovanie JSONArray

Čo sa týka vyššie uvedeného JSON, čo ak chceme zistiť mená všetkých našich zákazníkov? Inými slovami, vzhľadom na kľúč, "názov" ako v našom príklade môžeme nájsť všetky hodnoty namapované na tento kľúč v danom poli JSON?

Ako vieme, a JSONArray je zoznam objektov JSON. Poďme teda nájsť všetky hodnoty pre daný kľúč:

public List getValuesForGivenKey (reťazec jsonArrayStr, kľúč reťazca) {JSONArray jsonArray = nový JSONArray (jsonArrayStr); návrat IntStream.range (0, jsonArray.length ()) .mapToObj (index -> ((JSONObject) jsonArray.get (index)). optString (kľúč)) .collect (Collectors.toList ()); }

V predchádzajúcom príklade:

  • Najskôr iterujeme celým zoznamom objektov v poli JSON
  • Potom pre každého JSONObject, dostaneme hodnotu namapovanú na daný kľúč

Tiež metóda optString () vráti prázdny reťazec, ak taký kľúč neexistuje.

Pri vyvolaní getValuesForGivenKey (jsonArrayStr, „meno“) kde jsonArrayStr je náš príklad JSON, dostaneme Zoznam všetkých mien ako výstup:

[John, Gary, Selena]

5. Záver

V tomto rýchlom článku sme sa naučili, ako analyzovať a JSONArray získať všetky namapované hodnoty pre daný kľúč. Tu sme použili JSON-Java (org.json) knižnica.

JSON.simple je ďalšou podobnou a výkonnou alternatívou pre prácu s JSON v Jave. Nebojte sa preskúmať.

Celý zdrojový kód je ako obvykle k dispozícii na serveri Github.


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