JSON İşlemleri: PHP ile JSON Veri Okuma ve Yazma

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
JSON, verileri hafif ve okunabilir bir formatta saklamamızı sağlar. PHP'de JSON verileriyle çalışmak için sadece iki ana fonksiyona ihtiyacımız vardır: json_encode (Veriyi JSON'a çevirmek) ve json_decode (JSON'u PHP verisine çevirmek).

1. PHP Dizisini JSON Formatına Çevirme (json_encode)​


Veritabanından çektiğiniz bir diziyi veya nesneyi, bir API'ye göndermek ya da bir dosyaya kaydetmek için JSON formatına dönüştürmeniz gerekir.

PHP:
<?php
$uye_bilgileri = [
"kullanici_adi" => "Gemini",
"rutbe" => "Yazılımcı",
"diller" => ["PHP", "JavaScript", "Python"],
"aktif" => true
];

// PHP dizisini JSON metnine çeviriyoruz
// JSON_UNESCAPED_UNICODE: Türkçe karakterlerin bozulmasını önler
// JSON_PRETTY_PRINT: Okunabilir olması için boşluklu çıktı verir
$json_cikti = json_encode($uye_bilgileri, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

echo "<pre>" . $json_cikti . "</pre>";
?>

2. JSON Verisini PHP Dizisine Çevirme (json_decode)​


Bir API'den gelen veya bir dosyada saklanan JSON metnini PHP içinde işleyebilmek için diziye veya nesneye çevirmeliyiz.

PHP:
$json_veri = '{
"id": 101,
"site": "XenForo Forum",
"durum": "Aktif"
}';

// JSON'u PHP nesnesine (Object) çevirir
$obj = json_decode($json_veri);
echo $obj->site; // Çıktı: XenForo Forum

// JSON'u PHP dizisine (Array) çevirir (İkinci parametre: true)
$dizi = json_decode($json_veri, true);
echo $dizi['site']; // Çıktı: XenForo Forum
?>

3. Uzak Bir API'den JSON Verisi Çekmek​


Döviz kurları, hava durumu veya forum verilerini bir API üzerinden çekmek için en yaygın yöntem budur:

PHP:
$url = "https://api.ornek.com/veriler.json";
$json_ham = file_get_contents($url);
$veriler = json_decode($json_ham, true);

if ($veriler) {
echo "Gelen Başlık: " . $veriler['baslik'];
}

JSON Fonksiyon Parametreleri Tablosu​


Sabit / ParametreGöreviNeden Kullanılır?
JSON_UNESCAPED_UNICODEKarakterleri olduğu gibi bırakır.Türkçe karakterlerin (\u011f gibi) bozulmaması için.
JSON_PRETTY_PRINTVeriyi alt alta ve boşluklu dizer.İnsan tarafından kolay okunabilmesi için.
json_last_error()Son JSON hatasını döndürür.Hatalı JSON formatlarını tespit etmek için.

4. Hata Yönetimi​


JSON verisi her zaman düzgün gelmeyebilir. Hataları kontrol etmek profesyonel bir yaklaşımdır:

PHP:
$gecersiz_json = "{ 'id': 101 }"; // Yanlış tırnak kullanımı
$sonuc = json_decode($gecersiz_json);

if (json_last_error() !== JSON_ERROR_NONE) {
echo "JSON Hatası: " . json_last_error_msg();
}

Sonuç​


JSON, modern web dünyasının ortak dilidir. PHP'de json_encode ve json_decode fonksiyonlarını doğru bayraklarla (flags) kullanmak, hem veri güvenliğini sağlar hem de farklı sistemlerle sorunsuz entegrasyon kurmanıza imkan tanır. Özellikle Türkçe karakter desteği için JSON_UNESCAPED_UNICODE kullanmayı unutmayın!
 
Geri
Üst