Prehľad ukazovateľa JSON

1. Prehľad

V tomto návode ukážeme si, ako používať ukazovateľ JSON na navigáciu a načítanie informácií z údajov JSON.

Ukážeme si tiež, ako vykonávať operácie, ako je vkladanie nových údajov alebo aktualizácia existujúcich párov kľúč - hodnota.

2. Nastavenie závislosti

Najskôr musíme pridať nejaké závislosti do našej pom.xml:

 org.glassfish javax.json 1.1.2 

3. Ukazovateľ JSON

JSON („JavaScript Object Notation“) je ľahký formát na výmenu údajov medzi systémami, ktorý pôvodne určil Douglas Crockford.

Aj keď to používa JavaScript syntax, je to nezávislé od jazyka, pretože výsledným textom je obyčajný text.

Ukazovateľ JSON (RFC 6901) je funkcia z rozhrania JSON Processing 1.1 API (JSR 374). Definuje a String ktoré možno použiť na prístup k hodnotám v dokumente JSON. Môže to súvisieť s tým, čo XPath robí pre dokument XML.

Pomocou nástroja JSON Pointer môžeme načítať údaje a meniť súbor JSON.

4. Prístup k údajom

Uvidíme niekoľko príkladov, ako vykonávať operácie implementáciou triedy s názvom JsonPointerCrud.

Predpokladajme, že máme nazvaný súbor JSON knihy.json s obsahom:

{"library": "My Personal Library", "books": [{"title": "Názov 1", "autor": "Jane Doe"}, {"title": "Názov 2", "autor": "John Doe" } ] }

Ak chcete získať prístup k údajom z tohto súboru, musíme si ich prečítať a analyzovať ich na a JsonStruktúra. Môžeme to dosiahnuť použitím Json.createReader () metóda, ktorá akceptuje InputStream alebo a FileReader.

Môžeme to urobiť takto:

Čítačka JsonReader = Json.createReader (nový FileReader ("books.json")); JsonStructure jsonStructure = reader.read (); reader.close ();

Obsah bude uložený na a JsonStructure objekt. Toto je objekt, ktorý použijeme na vykonanie ďalších operácií.

4.1. Načítanie údajov zo súboru

Na získanie jednej hodnoty vytvoríme a JsonPointerinformujúci, od ktorej značky chceme získať hodnotu:

JsonPointer jsonPointer = Json.createPointer ("/ knižnica"); JsonString jsonString = (JsonString) jsonPointer.getValue (jsonStructure); System.out.println (jsonString.getString ());

Poznač si to prvý znak tohto String je „/' - toto je syntaktická požiadavka.

Výsledkom tohto úryvku je:

Moja osobná knižnica

Ak chcete načítať hodnotu zo zoznamu, musíme určiť jej index (kde je prvý index 0):

JsonPointer jsonPointer = Json.createPointer ("/ books / 1"); JsonObject jsonObject = (JsonObject) jsonPointer.getValue (jsonStructure); System.out.println (jsonObject.toString ());

Tento výstup:

"title": "Názov 2", "autor": "John Doe"

4.2. Skontrolujte, či je v súbore kľúč

Prostredníctvom metódy containsValue, môžeme skontrolovať, či sa hodnota použitá na vytvorenie ukazovateľa nachádza v súbore JSON:

JsonPointer jsonPointer = Json.createPointer ("/ knižnica"); boolean found = jsonPointer.containsValue (jsonStructure); System.out.println (nájdené); 

Výsledok pre tento úryvok je:

pravda

4.3. Vložte nový pár kľúč - hodnota

Ak potrebujeme pridať do JSON novú hodnotu, createValue je ten, kto to zvládne. Metóda createValue je preťažený prijať String, int, dlho, dvojitý, BigDecimal a BigInteger:

JsonPointer jsonPointer = Json.createPointer ("/ celkom"); JsonNumber jsonNumber = Json.createValue (2); jsonStructure = jsonPointer.add (jsonStructure, jsonNumber); System.out.println (jsonStructure);

Náš výstup je opäť:

{"library": "My Personal Library", "total": 2, "books": [{"title": "Názov 1", "autor": "Jane Doe"}, {"title": "Názov 2 "," autor ":" John Doe "}]}

4.4. Aktualizujte pár kľúč - hodnota

Ak chcete aktualizovať hodnotu, musíme najskôr vytvoriť novú hodnotu. Po vytvorení hodnoty použijeme vymeniť metóda z ukazovateľa vytvoreného pomocou kľúčového parametra:

JsonPointer jsonPointer = Json.createPointer ("/ celkom"); JsonNumber jsonNumberNewValue = Json.createValue (5); jsonStructure = jsonPointer.replace (jsonStructure, jsonNumberNewValue); System.out.println (jsonStructure);

Výstup:

{"library": "My Personal Library", "total": 5, "books": [{"title": "Názov 1", "autor": "Jane Doe"}, {"title": "Názov 2 "," autor ":" John Doe "}]}

4.5. Vyberte kľúč

Ak chcete odstrániť kľúč, najskôr na neho vytvoríme ukazovateľ. Potom použijeme metódu remove:

JsonPointer jsonPointer = Json.createPointer ("/ knižnica"); jsonPointer.getValue (jsonStructure); jsonStructure = jsonPointer.remove (jsonStructure); System.out.println (jsonStructure);

Vyúsťujúce do:

{"total": 5, "books": [{"title": "Názov 1", "autor": "Jane Doe"}, {"title": "Názov 2", "autor": "John Doe" }]}

4.6. Zobraziť celý obsah súboru

Ak je ukazovateľ vytvorený s prázdnym String, načíta sa celý obsah:

JsonPointer jsonPointer = Json.createPointer (""); JsonObject jsonObject = (JsonObject) jsonPointer.getValue (jsonStructure); System.out.println (jsonObject.toString ());

Táto vzorka kódu by vyprodukovala celý obsah súboru jsonStruktúra.

5. Záver

V tomto rýchlom článku sme sa venovali tomu, ako pracovať s JSON Pointerom pri vykonávaní rôznych operácií s údajmi JSON.

A ako to býva zvykom, kód súvisiaci s týmto tutoriálom je na GitHubu u konca.


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