PHP Dizisini JSON Örneğine Dönüştürme

PHP json encode, PHP dizisini json’a dönüştüren dahili bir işlevdir. Json_encode () işlevi, sayısal olarak dizinlenmiş diziyi gösterdiği gibi kendisine iletilen değerin JSON eşdeğer dizi döndürülür.  Ayrıca bir sunucudan alınan herhangi bir JSON’u JavaScript nesnelerine dönüştürebiliriz.

PHP Dizisini Json’a Dönüştürün

JSON’un günlük kullanımı, bir web sunucusundan veri okumak ve verileri bir web sayfasında görüntülemektir. Tarayıcı ve sunucu arasında veri alışverişi yaparken, veriler yalnızca metin biçiminde olabilir.

JSON, metin biçimidir ve herhangi bir JavaScript object JSON biçimine dönüştürebilir ve bu JSON’u bir sunucuya gönderebiliriz.

PHP, JSON’u işlemek için bazı yerleşik işlevlere sahiptir. PHP’deki Nesneler ve Dizi, PHP json_encode() kullanılarak JSON’a dönüştürülebilir .

Aşağıdaki örneği görelim.

<?php

$netflix = ['Black Mirror', '13 Reasons Why', 'Bird Box', 'Dirt'];

$netJSON = json_encode($netflix);

echo "<pre>";
echo $netJSON."<br>";
echo "<pre>";

?>

Çıktıya bakalım.

["Black Mirror","13 Reasons Why","Bird Box","Dirt"]

Sayısal olarak dizine alınmış bir PHP dizisi, bir JSON dizesine çevrilir.  JSON_FORCE_OBJECT seçeneği, bu dizinin nesne olarak yazdırmak istiyorsanız kullanılabilir.

Aşağıdaki koda bakın.

<?php

$netflix = ['Black Mirror', '13 Reasons Why', 'Bird Box', 'Dirt'];
$netJSON = json_encode($netflix, JSON_FORCE_OBJECT);

echo "<pre>";
echo $netJSON."<br>";
echo "<pre>";

?>

Çıktıya bakalım.

{"0":"Black Mirror","1":"13 Reasons Why","2":"Bird Box","3":"Dirt"}

İlişkisel Diziyi JSON’a Dönüştür

Anahtar/değer çifti dizisini json’a dönüştürme örneğini ele alalım.

<?php

$data = ['name' => 'Ali', 'uni' => 'marmara', 'language' => 'TR'];
$jsonData = json_encode($data);

echo "<pre>";
echo $jsonData."<br>";
echo "<pre>";

?>

Çıktıya bakalım.

{"name":"Ali","uni":"marmara","language":"TR"}

 json_encode() işlevi başarı durumunda JSON kodlu bir dize veya başarısızlık durumunda FALSE döndürür.

Bazı seçenekleri gösteren PHP json_encode() örneği

Aşağıdaki koda bakalım

<?php
 
echo "<pre>";
 
$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");
 
echo "Normal: ",  json_encode($a);
echo "Tags: ",    json_encode($a, JSON_HEX_TAG);
echo "Apos: ",    json_encode($a, JSON_HEX_APOS);
echo "Quot: ",    json_encode($a, JSON_HEX_QUOT);
echo "Amp: ",     json_encode($a, JSON_HEX_AMP);
echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE);
echo "All: ",     json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);
 
$b = array();
 
echo "Boş diziyi dizi olarak çıkarma: ", json_encode($b);
echo "Boş diziyi nesne olarak çıkarma: ", json_encode($b, JSON_FORCE_OBJECT);
 
$c = array(array(1,2,3));
 
echo "İlişkisel olmayan diziyi çkarma: ", json_encode($c);
echo "İlişkisel olmayan diziyi nesne olarak çıkarma: ", json_encode($c, JSON_FORCE_OBJECT);
 
$d = array('foo' => 'bar', 'baz' => 'long');
 
echo "İlişkisel diziyi çıkarma: ", json_encode($d);
echo "İlişkilsel diziyi nesne olarak çıkarma: ", json_encode($d, JSON_FORCE_OBJECT);
?>

Çıktıya bakalım.

Normal: ["","'bar'","\"baz\"","&blong&","\u00e9"]
Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Apos: ["","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Quot: ["","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Amp: ["","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode: ["","'bar'","\"baz\"","&blong&","é"]
All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"]

Boş diziyi dizi olarak çıkarma: []
Boş diziyi nesne olarak çıkarma: {}

İlişkisel olmayan diziyi çkarma: [[1,2,3]]
İlişkisel olmayan diziyi nesne olarak çıkarma: {"0":{"0":1,"1":2,"2":3}}

İlişkisel diziyi çıkarma: {"foo":"bar","baz":"long"}
İlişkilsel diziyi nesne olarak çıkarma: {"foo":"bar","baz":"long"}

Yukarıdaki kodda,  json_encode işlevine bir seçenekler parametresini geçtik. Yukarıdaki çevirmeler ile özel karakterleri, HTML etiketlerini, tırnak işaretlerini JSON formatına nasıl çevrildiğini gördük.

Ve son umarım işinize yaramıştır. Aklınıza takılan bir soru veya bir sorun varsa yorum yapabilirsiniz.