logo

Kako pretvoriti niz u JSON objekt u Javi?

Danas je vrlo uobičajeno primati podatke JSON niz format umjesto XML-a. Kada imamo posla s JSON Stringom u Javi, on ne pretvara JSON niz do JSON objekt . Ali koristite JSON niz uvijek nije dobra opcija jer se s tim teško nositi. Zbog promjena i zahtjeva tehnologije, moramo pretvoriti JSON niz u JSON objekt za dohvaćanje vrijednosti. za rješavanje ovog problema postoje neke knjižnice otvorenog koda koje nam to omogućuju pretvoriti JSON niz u JSON objekt. U ovom odjeljku smo objasnili kako pretvoriti JSON niz u JSON objekt detaljno s primjerom. Prije nego prijeđemo na glavnu temu, pogledajmo JSON format.

 jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] } 

Gornji JSON format sadrži šest atributa od kojih su prva dva nizovi, sljedeća tri su numerički i na kraju JSON niz.

Pretvorite JSON niz u JSON objekt

Postoje sljedeće tri biblioteke koje se koriste za pretvaranje niza u JSON objekt u Javi:

  • Korištenje Gson knjižnice
  • Korištenje JSON-jednostavne biblioteke
  • Jacksonova knjižnica

Korištenje Gson knjižnice

Gson je open-source i bogat Java knjižnica koju pruža Google. Koristi se za pretvaranje JSON niza u ekvivalentni JSON objekt i JSON objekta u JSON niz. Sljedeći redak koda koristi se za pretvaranje JSON niza u JSON objekt.

 Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class) 

Također možemo pretvoriti JSON objekt u JSON niz pomoću toJson() metoda.

 String str = g.toJson(p); 

Korištenje JSON-jednostavne biblioteke

To je još jedna Java biblioteka otvorenog koda koja se koristi za pretvaranje JSON niza u JSON objekt. Prednost biblioteke JSON-Simple je njezina mala veličina. Savršen je tamo gdje je važno okruženje ograničenja memorije. Imajte na umu da je također kompatibilan s JDK 1.2. To znači da ga možemo koristiti s naslijeđenim projektom koji nije u Javi 5. Koristimo sljedeće naredbe za pretvaranje JSON niza u JSON objekt.

 JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse); 

Korištenje Jackson Library

Jackson biblioteka je učinkovita i široko korištena Java biblioteka za mapiranje Java objekata u JSON i obrnuto. Bogat je značajkama, brz u performansama, a također podržava streaming. Stream može analizirati veliki JSON izlaz iz web-usluga bez da ga u potpunosti učita u memoriju. Sljedeća izjava pretvara JSON String koji predstavlja učenika u Java klasu koja predstavlja učenika.

 Student student = new ObjectMapper().readValue(jsonString, Student.class); 

Nedostatak Jacksonove biblioteke je što zahtijeva najmanje JDK 1.5. Stoga, ako imamo posla sa starijom verzijom, ona tamo neće stati. Još jedan nedostatak biblioteke Jackson je to što ne podržava J2ME.

Primjer pretvorbe JSON niza u JSON objekt

U sljedećem programu pretvorili smo JSON niz u JSON objekt.

JsonStringToJsonObjectExample.java

 import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = &apos;[{&apos;No&apos;:&apos;17&apos;,&apos;Name&apos;:&apos;Andrew&apos;},{&apos;No&apos;:&apos;18&apos;,&apos;Name&apos;:&apos;Peter&apos;}, {&apos;No&apos;:&apos;19&apos;,&apos;Name&apos;:&apos;Tom&apos;}]&apos;; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let&apos;s see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>

Pogledajmo još jedan primjer.

JsonStringToJsonObjectExample2.java

java stacks
 import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } 

Izlaz:

 Sam Smith Python