Php 8 Json Encode
PHP 8'de json_encode() fonksiyonu, bir PHP değişkenini (dizi, nesne vb.) JSON formatına dönüştürmek için kullanılır. Bu işlem, verileri genellikle bir API ile paylaşmak, dosyalarda saklamak veya başka sistemlerle veri alışverişi yapmak için gereklidir. json_encode() fonksiyonu, dizileri, nesneleri ve diğer veritiplerini JSON uyumlu bir yapıya dönüştürür.
Fonksiyonunun Kullanımı
json_encode() fonksiyonu, verilen PHP verisini JSON formatına dönüştürür. Temel sözdizimi şu şekildedir:
string json_encode ( mixed $value [, int $flags = 0 [, int $depth = 512 ]] ) -
value: JSON formatına dönüştürülecek PHP değişkeni. Bu, bir dizi, nesne, string, sayı vb. olabilir. -
flags(isteğe bağlı): Çeşitli seçenekleri belirlemek için kullanılan bayraklar. -
depth(isteğe bağlı): JSON dönüşümünde izin verilen maksimum derinlik. Varsayılan olarak512'dir.
Basit Kullanım
PHP dizilerini veya nesnelerini JSON formatına dönüştürmek için json_encode() kullanılabilir.
Örnek 1: Diziyi JSON Formatına Dönüştürmek
<?php $veri = [ "isim" => "Ahmet", "yas" => 25, "meslek" => "Yazılımcı" ]; // Diziyi JSON formatına dönüştür $json = json_encode($veri); echo $json; ?> Bu örnekte, $veri dizisi JSON stringine dönüştürülür. Çıktı şu şekilde olur:
{ "isim" : "Ahmet" , "yas" : 25 , "meslek" : "Yazılımcı" } Örnek 2: Nesneyi JSON Formatına Dönüştürmek
PHP nesneleri de json_encode() ile JSON formatına dönüştürülebilir.
<?php class Kisi { public $isim; public $yas; public $meslek; public function __construct( $isim, $yas, $meslek ) { $this->isim = $isim; $this->yas = $yas; $this->meslek = $meslek; } } $kisi = new Kisi("Ahmet", 25, "Yazılımcı"); // Nesneyi JSON formatına dönüştür $json = json_encode($kisi); echo $json; ?> Çıktı şu şekilde olur:
{ "isim" : "Ahmet" , "yas" : 25 , "meslek" : "Yazılımcı" } JSON Encode Seçenekleri ()
json_encode() fonksiyonu ile çeşitli bayraklar (flags) kullanarak çıktıyı değiştirebilirsiniz.
Yaygın Kullanılan json_encode Bayrakları
-
JSON_PRETTY_PRINT: JSON çıktısını insan okunabilir bir formatta döndürür (düzgün biçimlendirilmiş). -
JSON_UNESCAPED_SLASHES: JSON'daki eğik çizgilerin (/) kaçmasını engeller. -
JSON_UNESCAPED_UNICODE: Unicode karakterlerinin kaçmasını engeller (Türkçe karakterler gibi). -
JSON_NUMERIC_CHECK: Sayısal stringlerin sayıya dönüştürülmesini sağlar.
Örnek: JSON_PRETTY_PRINT Kullanımı
<?php $veri = [ "isim" => "Ahmet", "yas" => 25, "meslek" => "Yazılımcı" ]; // JSON'u düzgün biçimlendirilmiş halde dönüştür $json = json_encode($veri, JSON_PRETTY_PRINT); echo $json; ?> Bu örnekte, JSON çıktısı okunabilir bir formatta üretilir:
{ "isim" : "Ahmet" , "yas" : 25 , "meslek" : "Yazılımcı" } Örnek: JSON_UNESCAPED_UNICODE ve JSON_UNESCAPED_SLASHES Kullanımı
<?php $veri = [ "site" => "https://ornek.com/ana/sayfa", "karakter" => "Ç", ]; // Eğik çizgileri ve Unicode karakterlerini kaçmadan göster $json = json_encode($veri, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); echo $json; ?> Bu bayraklar sayesinde çıktıda kaçma karakterleri kullanılmaz:
{ "site" : "https://ornek.com/ana/sayfa" , "karakter" : "Ç" } Çok Boyutlu Dizilerin JSON Formatına Dönüştürülmesi
Eğer bir dizi çok boyutluysa (iç içe diziler barındırıyorsa), json_encode() bu dizileri de doğru şekilde JSON formatına dönüştürür.
<?php $veri = [ "isim" => "Ahmet", "yas" => 25, "beceriler" => [ "diller" => ["PHP", "JavaScript", "Python"], "veritabanı" => "MySQL" ] ]; // Diziyi JSON formatına dönüştür $json = json_encode($veri, JSON_PRETTY_PRINT); echo $json; ?> Çıktı şu şekilde olacaktır:
{ "isim" : "Ahmet" , "yas" : 25 , "beceriler" : { "diller" : [ "PHP" , "JavaScript" , "Python" ] , "veritabanı" : "MySQL" } } JSON Encode Kullanımında Hatalar ve Kontroller
Eğer json_encode() sırasında bir hata oluşursa, fonksiyon false döner. JSON kodlaması sırasında oluşan hataları kontrol etmek için json_last_error() ve json_last_error_msg() fonksiyonlarını kullanabilirsiniz.
Örnek: JSON Encode Hatalarını Kontrol Etmek
<?php $veri = "xB1x31"; // Geçersiz bir string $json = json_encode($veri); if ($json === false) { // JSON hatasını al echo "JSON kodlama hatası: " . json_last_error_msg(); } else { echo $json; } ?> Bu kod çalıştığında, json_last_error_msg() ile hata mesajı görüntülenir:
JSON kodlama hatası: Malformed UTF-8 characters, possibly incorrectly encoded
JSON Encode Fonksiyonu ile Sayısal Stringlerin Kontrolü
Eğer sayısal stringleri JSON çıktısında sayısal veri olarak görmek istiyorsanız, JSON_NUMERIC_CHECK bayrağını kullanabilirsiniz.
Örnek: JSON_NUMERIC_CHECK Kullanımı
<?php $veri = [ "isim" => "Ahmet", "telefon" => "1234567890", // Sayısal string ]; // JSON_NUMERIC_CHECK kullanılarak sayısal stringlerin sayıya dönüştürülmesi $json = json_encode($veri, JSON_NUMERIC_CHECK); echo $json; ?> Çıktıda telefon verisi bir sayı olarak gösterilir:
{ "isim" : "Ahmet" , "telefon" : 1234567890 } Sonuç
-
json_encode(), PHP verilerini JSON formatına dönüştürmek için kullanılan bir fonksiyondur. - Basit diziler, çok boyutlu diziler ve nesneler JSON formatına dönüştürülebilir.
-
JSON_PRETTY_PRINT,JSON_UNESCAPED_UNICODE,JSON_NUMERIC_CHECKgibi bayraklarla JSON çıktısı özelleştirilebilir. - Hataları kontrol etmek için
json_last_error()vejson_last_error_msg()fonksiyonları kullanılabilir.
PHP 8 ile JSON işlemleri, veri paylaşımı ve API entegrasyonları gibi birçok uygulamada yaygın olarak kullanılmaktadır.
Bu ders size yardımcı oldu mu? Puan verin!
Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.
Sıkça Sorulan Sorular (SSS)
Bu ders ve konuyla ilgili en çok merak edilenler
Php 8 Json Encode dersini öğrenmek için ön koşul var mı?
Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.
Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?
Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.
Takıldığım bir yerde nereden soru sorabilirim?
Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.
Topluluk Yorumları (0)
Ders Hakkında Yorum Yap veya Soru Sor
Henüz yorum yapılmamış. İlk yorumu siz yazın!