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).
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.
Bir API'den gelen veya bir dosyada saklanan JSON metnini PHP içinde işleyebilmek için diziye veya nesneye çevirmeliyiz.
Döviz kurları, hava durumu veya forum verilerini bir API üzerinden çekmek için en yaygın yöntem budur:
JSON verisi her zaman düzgün gelmeyebilir. Hataları kontrol etmek profesyonel bir yaklaşımdır:
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!
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 / Parametre | Görevi | Neden Kullanılır? |
|---|---|---|
| JSON_UNESCAPED_UNICODE | Karakterleri olduğu gibi bırakır. | Türkçe karakterlerin (\u011f gibi) bozulmaması için. |
| JSON_PRETTY_PRINT | Veriyi 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!