logo

String'i Java'da JSON Nesnesine Nasıl Dönüştürürüm?

Günümüzde veri almak çok yaygın. JSON Dizesi XML yerine format. Java'da JSON String ile uğraştığımızda, JSON Dizesi ile JSON Nesnesi . Ama şunu kullan JSON Dizesi her zaman iyi bir seçenek değildir çünkü bununla baş etmek zordur. Teknolojinin değişimi ve talebi nedeniyle, JSON String'i JSON Nesnesine dönüştürün değerleri almak için. Bu sorunu çözmek için bazı açık kaynaklı kütüphaneler var. JSON String'i JSON Nesnesine dönüştürün. Bu bölümde anlattık JSON String'i JSON Nesnesine dönüştürme örnekle ayrıntılı olarak. Ana konuya geçmeden önce JSON formatına bir göz atalım.

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

Yukarıdaki JSON formatı, ilk ikisi String, sonraki üçü sayısal ve son olarak bir JSON dizisi olmak üzere altı nitelik içerir.

JSON Stringini JSON Nesnesine Dönüştür

Java'da String'i JSON Nesnesine dönüştürmek için kullanılan aşağıdaki üç kitaplık vardır:

  • Gson Kitaplığını Kullanma
  • JSON-Simple Library'yi Kullanma
  • Jackson Kütüphanesi

Gson Kitaplığını Kullanma

Gson açık kaynaklı ve zengin bir yazılımdır Java Google tarafından sağlanan kütüphane. JSON String'i eşdeğer JSON Nesnesine ve JSON Nesnesini JSON String'e dönüştürmek için kullanılır. JSON String'i JSON Object'e dönüştürmek için aşağıdaki kod satırı kullanılır.

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

Ayrıca JSON Nesnesini JSON String'e dönüştürebiliriz. toJson() yöntem.

 String str = g.toJson(p); 

JSON-Simple Library'yi Kullanma

JSON String'i JSON Nesnesine dönüştürmek için kullanılan başka bir açık kaynaklı Java kütüphanesidir. JSON-Simple kütüphanesinin avantajı küçük boyutudur. Bellek kısıtlama ortamının önemli olduğu yerler mükemmeldir. JDK 1.2 ile de uyumlu olduğunu unutmayın. Bu demek oluyor ki Java 5'te olmayan eski bir proje ile kullanabiliriz. JSON String'i JSON Object'e dönüştürmek için aşağıdaki ifadeleri kullanıyoruz.

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

Jackson Kütüphanesini Kullanma

Jackson kütüphanesi, Java nesnelerini JSON'a (veya tam tersi) eşlemek için etkili ve yaygın olarak kullanılan bir Java kütüphanesidir. Özellikleri bakımından zengindir, performansı hızlıdır ve aynı zamanda akışı da destekler. Akış, büyük bir JSON çıktısını belleğe tam olarak yüklemeden web hizmetlerinden ayrıştırabilir. Aşağıdaki ifade, bir öğrenciyi temsil eden JSON String'i, öğrenciyi temsil eden bir Java sınıfına dönüştürür.

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

Jackson kütüphanesinin dezavantajı en az JDK 1.5 gerektirmesidir. Dolayısıyla daha eski bir versiyonla karşı karşıyaysak oraya sığmayacaktır. Jackson kütüphanesinin bir diğer dezavantajı J2ME'yi desteklememesidir.

JSON Dizgisinden JSON Nesnesine Dönüştürme Örneği

Aşağıdaki programda bir JSON Stringini JSON Object'e dönüştürdük.

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

Başka bir örnek görelim.

JsonStringToJsonObjectExample2.java

c++ dize bölünmesi
 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); } } 

Çıktı:

 Sam Smith Python