Pregled JSON pokazivača

1. Pregled

U ovom vodiču, pokazat ćemo kako koristiti JSON pokazivač za navigaciju i dohvaćanje podataka iz JSON podataka.

Pokazat ćemo i kako izvoditi operacije poput umetanja novih podataka ili ažuriranja postojećih ključeva / vrijednosti.

2. Postavljanje ovisnosti

Prvo, moramo dodati neke ovisnosti u naš pom.xml:

 org.glassfish javax.json 1.1.2 

3. JSON pokazivač

JSON ("JavaScript Object Notation") lagan je format za razmjenu podataka između sustava, koji je izvorno odredio Douglas Crockford.

Iako koristi JavaScript sintaksa, neovisan je o jeziku, jer je rezultanta običan tekst.

JSON pokazivač (RFC 6901) značajka je JSON Processing 1.1 API-ja (JSR 374). Definira a Niz koji se mogu koristiti za pristup vrijednostima u JSON dokumentu. Može se povezati s onim što XPath radi za XML dokument.

Korištenjem JSON pokazivača možemo dohvatiti podatke iz JSON datoteke i izmijeniti je.

4. Pristup podacima

Vidjet ćemo nekoliko primjera kako izvoditi operacije implementacijom klase tzv JsonPointerCrud.

Pretpostavimo da imamo JSON datoteku koja se zove knjige.json sa sadržajem:

{"library": "My Personal Library", "books": [{"title": "Title 1", "author": "Jane Doe"}, {"title": "Title 2", "author": "John Doe"}]}}

Da bismo pristupili podacima iz te datoteke, moramo ih pročitati i raščlaniti na JsonStruktura. To možemo postići koristeći Json.createReader () metoda koja prihvaća InputStream ili a Čitač datoteka.

Evo kako to možemo učiniti:

Čitač JsonReader = Json.createReader (novi FileReader ("books.json")); JsonStructure jsonStructure = reader.read (); čitač.close ();

Sadržaj će biti pohranjen na JsonStruktura objekt. Ovo je objekt koji ćemo koristiti za izvršavanje sljedećih operacija.

4.1. Dohvaćanje podataka iz datoteke

Za dohvaćanje jedne vrijednosti stvaramo a JsonPointer, obavještavajući iz koje oznake želimo dobiti vrijednost:

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

Imajte na umu da prvi lik ovog Niz je '/' - ovo je sintaktički zahtjev.

Rezultat ovog isječka je:

Moja osobna knjižnica

Da bismo dohvatili vrijednost s popisa, moramo navesti njezin indeks (gdje je prvi indeks 0):

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

Ovo daje:

"title": "Title 2", "author": "John Doe"

4.2. Provjerite je li u datoteci prisutan ključ

Kroz metodu sadržiVrijednost, možemo provjeriti je li vrijednost korištena za stvaranje pokazivača prisutna u JSON datoteci:

JsonPointer jsonPointer = Json.createPointer ("/ knjižnica"); pronađeno logičko = jsonPointer.containsValue (jsonStructure); System.out.println (pronađeno); 

Rezultat ovog isječka je:

pravi

4.3. Umetnite novi ključ / vrijednost

Ako moramo dodati novu vrijednost JSON-u, createValue je taj koji će to riješiti. Metoda createValue je preopterećen da prihvati Niz, int, dugo, dvostruko, BigDecimal i BigInteger:

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

Opet, naš rezultat je:

{"library": "My Personal Library", "total": 2, "books": [{"title": "Title 1", "author": "Jane Doe"}, {"title": "Title 2 "," author ":" John Doe "}]}

4.4. Ažurirajte ključ / vrijednost

Da bismo ažurirali vrijednost, prvo moramo stvoriti novu vrijednost. Nakon stvaranja vrijednosti koristimo zamijeniti metoda iz pokazivača stvorenog pomoću parametra ključa:

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

Izlaz:

{"library": "My Personal Library", "total": 5, "books": [{"title": "Title 1", "author": "Jane Doe"}, {"title": "Title 2 "," author ":" John Doe "}]}

4.5. Uklonite ključ

Da bismo uklonili ključ, prvo stvorimo pokazivač na ključ. Zatim koristimo metodu uklanjanja:

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

Kao rezultat:

{"ukupno": 5, "knjige": [{"naslov": "naslov 1", "autor": "Jane Doe"}, {"naslov": "naslov 2", "autor": "John Doe" }]}

4.6. Prikažite puni sadržaj datoteke

Ako je pokazivač stvoren s praznim Niz, preuzima se cijeli sadržaj:

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

Ovaj uzorak koda dao bi cjelokupni sadržaj datoteke jsonStruktura.

5. Zaključak

U ovom smo kratkom članku opisali kako raditi s JSON Pointerom za obavljanje različitih operacija na JSON podacima.

I, kao i obično, kod povezan s ovim vodičem na GitHub-u je gotov.


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