logo

Kuinka muuntaa merkkijono JSON-objektiksi Javassa?

Nykyään on hyvin yleistä vastaanottaa tietoja JSON-merkkijono muoto XML:n sijaan. Kun käsittelemme JSON-merkkijonoa Javassa, se ei muunna JSON-merkkijono kohtaan JSON-objekti . Mutta käytä JSON-merkkijono ei aina ole hyvä vaihtoehto, koska sitä on vaikea käsitellä. Teknologian muutoksen ja kysynnän vuoksi meidän on muuntaa JSON-merkkijono JSON-objektiksi arvojen hakemiseen. Tämän ongelman ratkaisemiseksi on olemassa joitakin avoimen lähdekoodin kirjastoja, jotka mahdollistavat sen muuntaa JSON-merkkijono JSON-objektiksi. Tässä osiossa olemme selittäneet kuinka muuntaa JSON-merkkijono JSON-objektiksi yksityiskohtaisesti esimerkin kanssa. Ennen kuin siirryt pääaiheeseen, katsotaanpa JSON-muotoa.

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

Yllä oleva JSON-muoto sisältää kuusi attribuuttia, joista kaksi ensimmäistä ovat merkkijonoja, seuraavat kolme ovat numeerisia ja lopulta JSON-taulukko.

Muunna JSON-merkkijono JSON-objektiksi

Seuraavaa kolmea kirjastoa käytetään muuntamaan merkkijono JSON-objektiksi Javassa:

  • Gson Libraryn käyttö
  • JSON-Simple Libraryn käyttäminen
  • Jacksonin kirjasto

Gson Libraryn käyttö

Gson on avoimen lähdekoodin ja rikas Java Googlen tarjoama kirjasto. Sitä käytetään muuttamaan JSON-merkkijono vastaavaksi JSON-objektiksi ja JSON-objekti JSON-merkkijonoksi. Seuraavaa koodiriviä käytetään JSON-merkkijonon muuntamiseen JSON-objektiksi.

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

Voimme myös muuntaa JSON-objektin JSON-merkkijonoksi käyttämällä toJson() menetelmä.

 String str = g.toJson(p); 

JSON-Simple Libraryn käyttäminen

Se on toinen avoimen lähdekoodin Java-kirjasto, jota käytetään JSON-merkkijonon muuntamiseen JSON-objektiksi. JSON-Simple-kirjaston etuna on sen pieni koko. Se on täydellinen, kun muistin rajoitusympäristö on tärkeä. Huomaa, että se on myös yhteensopiva JDK 1.2:n kanssa. Se tarkoittaa, että voimme käyttää sitä vanhan projektin kanssa, joka ei ole Java 5:ssä. Käytämme seuraavia lauseita JSON-merkkijonon muuntamiseen JSON-objektiksi.

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

Jackson Libraryn käyttäminen

Jackson-kirjasto on tehokas ja laajalti käytetty Java-kirjasto Java-objektien kartoittamiseen JSON:iin ja päinvastoin. Siinä on runsaasti ominaisuuksia, nopea suorituskyky ja se tukee myös suoratoistoa. Virta voi jäsentää suuren JSON-ulostulon verkkopalveluista lataamatta sitä kokonaan muistiin. Seuraava lause muuntaa opiskelijaa edustavan JSON-merkkijonon opiskelijaa edustavaksi Java-luokiksi.

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

Jackson-kirjaston haittana on, että se vaatii vähintään JDK 1.5:n. Siksi, jos kyseessä on vanhempi versio, se ei sovi sinne. Toinen Jackson-kirjaston haittapuoli on, että se ei tue J2ME:tä.

Esimerkki JSON-merkkijonosta JSON-objektiksi

Seuraavassa ohjelmassa olemme muuntaneet JSON-merkkijonon JSON-objektiksi.

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();>

Katsotaanpa toinen esimerkki.

JsonStringToJsonObjectExample2.java

10/50
 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); } } 

Lähtö:

 Sam Smith Python