Php 8 Json Encode

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.

json_encode() 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 olarak 512'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 (Flags)

json_encode() fonksiyonu ile çeşitli bayraklar (flags) kullanarak çıktıyı değiştirebilirsiniz.

Yaygın Kullanılan json_encode Bayrakları

  1. JSON_PRETTY_PRINT : JSON çıktısını insan okunabilir bir formatta döndürür (düzgün biçimlendirilmiş).
  2. JSON_UNESCAPED_SLASHES : JSON'daki eğik çizgilerin (/) kaçmasını engeller.
  3. JSON_UNESCAPED_UNICODE : Unicode karakterlerinin kaçmasını engeller (Türkçe karakterler gibi).
  4. 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_CHECK gibi bayraklarla JSON çıktısı özelleştirilebilir.
  • Hataları kontrol etmek için json_last_error() ve json_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.



Yorum Ekle

Üzerine gel