Kapjon értéket kulcs szerint egy JSONArray-ben

1. Áttekintés

A JSON egy könnyű és nyelvtől független adatcsere-formátum, amelyet a legtöbb ügyfél-szerver kommunikációhoz használnak.

JSONObject és JSONArray a két általános osztály általában elérhető a legtöbb JSON feldolgozó könyvtárban. A JSONObject rendezetlen kulcs-érték párokat tárol, hasonlóan a Java-hoz Térkép végrehajtás. A JSONArraymásrészt rendezett értéksor hasonlóan a Lista vagy a Vektor Java-ban.

Ebben az oktatóanyagban a következőket fogjuk használni JSON-Java (org.json) könyvtár és megtanulják, hogyan kell feldolgozni a JSONArray egy adott kulcs értékének kinyerése. Ha szükséges, rendelkezésünkre áll a könyvtár bevezetése.

2. Maven-függőség

Először az alábbi függőség hozzáadásával kezdjük a POM-ban:

 org.json json 20180813 

Mindig megtudhatjuk a legújabb verzióját JSON-Java a Maven Central-on.

3. A kontextus felépítése

A JSON üzenet általában JSON objektumokból és tömbökből áll, amelyek egymásba ágyazódhatnak. A JSONArray az objektum szögletes zárójelben szerepel [ ] mivel a JSONObject göndör zárójelbe van zárva {}. Vegyük például figyelembe ezt a JSON üzenetet:

[{"név": "John", "város": "chicago", "kor": "22"}, {"név": "Gary", "város": "florida", "kor": "35 "}, {" name ":" Selena "," city ":" vegas "," age ":" 18 "}]

Nyilvánvaló, hogy ez egy JSON objektum tömb. Ebben a tömbben minden JSON objektum képviseli az ügyfélrekordunkat név, életkor, és város mint attribútumait vagy kulcsait.

4. Feldolgozás JSONArray

A fenti JSON-t figyelembe véve, mi van akkor, ha meg akarjuk tudni az összes ügyfelünk nevét? Más szóval, adott egy kulcsot, "név" példánkban hogyan lehet megtalálni az adott kulcshoz leképezett összes értéket egy adott JSON tömbben?

Mint tudjuk, a JSONArray a JSON objektumok listája. Tehát keressük meg az adott kulcs összes értékét:

public list getValuesForGivenKey (karakterlánc jsonArrayStr, String kulcs) {JSONArray jsonArray = új JSONArray (jsonArrayStr); return IntStream.range (0, jsonArray.length ()) .mapToObj (index -> ((JSONObject) jsonArray.get (index)). optString (kulcs)) .collect (Collectors.toList ()); }

Az előző példában:

  • Először a JSON tömb objektumainak teljes listáját végigvezetjük
  • Aztán mindegyikre JSONObject, megkapjuk az adott kulcshoz leképezett értéket

Továbbá a módszer optString () üres karakterláncot ad vissza, ha nincs ilyen kulcs.

Hivatkozáskor getValuesForGivenKey (jsonArrayStr, „név”) hol jsonArrayStr a JSON példánk, kapunk egy Lista az összes név kimenete:

[John, Gary, Selena]

5. Következtetés

Ebben a gyors cikkben megtanultuk, hogyan kell elemezni a JSONArray hogy megkapja az adott kulcs összes leképezett értékét. Itt használtuk JSON-Java (org.json) könyvtár.

A JSON.simple egy másik hasonló és hatékony alternatíva a JSON-nal való Java-használatra. Kérjük, bátran fedezze fel.

Szokás szerint a teljes forráskód elérhető a Githubon.


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