Skip to main content

📘 Java'da JSON-Simple Kullanımı: JSON Okuma ve Yazma Rehberi


🧠 Bu Rehberde Ne Öğreneceksiniz?

Bu rehberde, Java’nın hafif ve bağımsız JSON kütüphanesi json-simple’ı kullanarak JSON verilerini oluşturmayı, dosyaya yazmayı ve dosyadan okumayı öğreneceksiniz.
Ayrıca JSONObject, JSONArray ve JSONParser sınıflarının temel kullanımını pratik örneklerle göreceksiniz.


🧩 1. json-simple Nedir?

json-simple, JSON spesifikasyonuna (RFC4627) tamamen uyumlu, küçük ama etkili bir kütüphanedir.
Üçüncü taraf bağımlılığı olmadan JSON verilerini okuma, yazma ve düzenleme işlemleri için idealdir.

Avantajları:

  • Dış bağımlılık gerektirmez.
  • Map ve List yapılarıyla çalışır.
  • JSON’u kolayca dosyaya yazabilir veya okuyabilir.
  • Oldukça hafif ve hızlıdır.

⚙️ 2. Maven ile json-simple Bağımlılığını Ekleme

Projeye Maven üzerinden dahil etmek için pom.xml dosyasına aşağıdaki satırları ekleyin:

<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>

➡️ Bu bağımlılık, org.json.simple ve org.json.simple.parser sınıflarını projenize kazandırır.


✍️ 3. JSON Verisini Dosyaya Yazma

Aşağıdaki örnekte, JSONObject ve JSONArray sınıfları kullanılarak geliştirici bilgileri gelistirici.json dosyasına kaydedilir.


package com.rabisu.json.writer;

import java.io.FileWriter;
import java.io.IOException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class JsonSimpleWriter {

@SuppressWarnings("unchecked")
public static void main(String[] args) {
JSONObject obj = new JSONObject();
obj.put("ad", "Rabisu Geliştirici");
obj.put("yas", 30);

JSONArray projeler = new JSONArray();
projeler.add("Bulut API");
projeler.add("Otonom Sunucu");
projeler.add("Veri Ambarı");

obj.put("projeler", projeler);

try (FileWriter file = new FileWriter("gelistirici.json")) {
file.write(obj.toJSONString());
System.out.println("JSON dosyası oluşturuldu: " + obj);
} catch (IOException e) {
e.printStackTrace();
}
}
}

➡️ Bu kod, gelistirici.json dosyasına aşağıdaki içeriği yazar:


{"projeler":["Bulut API","Otonom Sunucu","Veri Ambarı"],"ad":"Rabisu Geliştirici","yas":30}

📖 4. JSON Verisini Dosyadan Okuma

Aşağıdaki örnek, aynı dosyadaki verileri okur ve ekrana yazdırır.


package com.rabisu.json.reader;

import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JsonSimpleReader {

public static void main(String[] args) {
JSONParser parser = new JSONParser();

try (FileReader reader = new FileReader("gelistirici.json")) {
Object obj = parser.parse(reader);
JSONObject json = (JSONObject) obj;

String ad = (String) json.get("ad");
long yas = (Long) json.get("yas");
JSONArray projeler = (JSONArray) json.get("projeler");

System.out.println("Ad = " + ad);
System.out.println("Yaş = " + yas);

Iterator<String> it = projeler.iterator();
while (it.hasNext()) {
System.out.println("Proje = " + it.next());
}
} catch (IOException | ParseException e) {
e.printStackTrace();
}
}
}

➡️ Örnek çıktı:


Ad = Rabisu Geliştirici
Yaş = 30
Proje = Bulut API
Proje = Otonom Sunucu
Proje = Veri Ambarı

🧮 5. json-simple Kullanımında Dikkat Edilmesi Gerekenler

💡 Durum🧾 Açıklama
Map/List YapısıJSON verileri doğal olarak anahtar-değer ve dizi mantığıyla çalışır.
Type Safety Uyarısı@SuppressWarnings("unchecked") jenerik eksikliğinden kaynaklı uyarıları bastırır.
Veri Türü DönüşümüJSONObject.get() metodu Object döndürür, tip dönüşümü ((String), (Long)) gerekir.
UTF-8 KullanımıTürkçe karakter sorunlarını önlemek için önerilir.
Büyük Verilerjson-simple tüm veriyi belleğe alır; büyük dosyalar için Jackson veya Gson kullanın.

❓ Sıkça Sorulan Sorular (SSS)

  1. json-simple neden Map ve List kullanıyor?

Çünkü JSON yapısı doğrudan anahtar-değer çiftlerinden (Map) ve dizilerden (List) oluşur.

  1. toJSONString() ne işe yarar?

Bir JSONObject veya JSONArray nesnesini JSON formatında metin haline dönüştürür.

  1. Büyük JSON dosyaları için yeterli mi?

json-simple küçük ve orta ölçekli veriler için idealdir. Büyük verilerde Jackson veya Gson önerilir.

  1. JSON okurken tip dönüşümü neden önemli?

get() metodu Object döndürür, doğru tipte kullanılabilmesi için cast yapılmalıdır.

  1. @SuppressWarnings("unchecked") neden gerekli?

JSONObject jenerik türleri desteklemez; bu annotation IDE uyarılarını geçici olarak kapatır.


🎯 Sonuç

Bu rehberde, json-simple kütüphanesini kullanarak JSON dosyası oluşturmayı ve okumayı öğrendiniz. Hafif yapısı sayesinde, küçük projelerde JSON verilerini yönetmek için mükemmel bir seçenektir.

💬 Daha ileri düzey JSON işlemleri için, bu örnekleri Rabisu Bulut platformunda kuracağınız sanal sunucuda test edebilir ve gerçek zamanlı uygulamalarınızda hemen deneyebilirsiniz!