PHP'de JSON Formatı
JSON, veri depolamak için bir formattır. Bu format genellikle web siteleri arasında veya sunucu ile tarayıcı arasında veri alışverişi için kullanılır. Bu format XML'ye kıyasla daha kompakt ve basittir, bu nedenle günümüzde çok daha yaygın olarak kullanılmaktadır.
JSON kısaltmasının açılımı JavaScript Object Notation'dır. Aslında JSON başlangıçta JavaScript dilinde bulunmuş olsa da artık her yerde kullanılmaktadır.
PHP açısından JSON formatındaki veriler bir dizeyi temsil eder:
<?php
$str = '
// burada JSON olacak
';
?>
Formatın kendisi, normal ve ilişkisel dizilerden
oluşan çok boyutlu bir yapıdır.
Dizilerin elemanları, çift tırnak içinde yazılmış
zorunlu olan dizeler, sayılar,
true, false
veya null değerleri olabilir.
Örneklerle inceleyelim. Sayılardan oluşan bir dizi yapalım:
<?php
$str = '[1, 2, 3, 4, 5]';
?>
Dizelerden oluşan bir dizi yapalım:
<?php
$str = '["a", "b", "c"]';
?>
Karışık içeriğe sahip bir dizi yapalım:
<?php
$str = '[1, "a", true, false, null]';
?>
Şimdi ilişkisel bir dizi yapalım. JavaScript terminolojisinde bu tür dizilere nesne denir. Nesneler küme parantezleri içine alınır, ve anahtarlar değerlerden iki nokta üst üste ile ayrılır. Bu tür dizilerin anahtarları, zorunlu olarak çift tırnak içinde yazılmış dizeler olmalıdır. Bir nesne örneği yapalım:
<?php
$str = '{
"a": 1,
"b": 2,
"c": 3
}';
?>
Dizileri ve nesneleri, herhangi bir iç içe geçme seviyesindeki yapılarda birleştirebilirsiniz:
<?php
$str = '{
"a": [1, 2, 3],
"b": [4, 5, 6]
}';
?>
JSON formatında son elemandan sonra gelen fazladan virgüllere izin verilmediğini unutmayın:
<?php
$str = '[
"a",
"b",
"c",
]'; // son virgül fazladan
?>
Aşağıdaki PHP yapısını JSON dizgesine dönüştürün:
<?php
$data = [1, 2, 3];
?>
Aşağıdaki PHP yapısını JSON dizgesine dönüştürün:
<?php
$data = ['x', 'y', 'z',];
?>
Aşağıdaki PHP yapısını JSON dizgesine dönüştürün:
<?php
$data = [
'x' => 'a',
'y' => 'b',
'z' => 'c',
];
?>
Aşağıdaki PHP yapısını JSON dizgesine dönüştürün:
<?php
$data = [
'ru' => ['1', '2', '3'],
'en' => ['a', 'b', 'c'],
];
?>