📘 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.
MapveListyapı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 Veriler | json-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)
- json-simple neden Map ve List kullanıyor?
Çünkü JSON yapısı doğrudan anahtar-değer çiftlerinden (Map) ve dizilerden (List) oluşur.
- toJSONString() ne işe yarar?
Bir JSONObject veya JSONArray nesnesini JSON formatında metin haline dönüştürür.
- 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.
- 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.
- @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!