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.