PHP ile JSON
Bu bölüm, JSON nesnelerinin PHP programlama dili kullanılarak nasıl kodlanacağını ve kodunun nasıl çözüleceğini kapsar. JSON için PHP ile programlamaya başlamak için ortamı hazırlayarak başlayalım.
Çevre
PHP 5.2.0'dan itibaren, JSON uzantısı varsayılan olarak PHP içinde paketlenmiş ve derlenmiştir.
JSON İşlevleri
Fonksiyon | Kitaplıklar |
---|---|
json_encode | Bir değerin JSON temsilini döndürür. |
json_decode | JSON dizesinin kodunu çözer. |
json_last_error | Oluşan son hatayı döndürür. |
JSON'u PHP'de kodlama (json_encode)
PHP json_encode () işlevi, PHP'de JSON'u kodlamak için kullanılır. Bu işlev, başarı durumunda bir değerin JSON temsilini veya başarısızlık durumunda FALSE değerini döndürür.
Sözdizimi
string json_encode ( $value [, $options = 0 ] )
Parametreler
value- Kodlanmakta olan değer. Bu işlev yalnızca UTF-8 kodlanmış verilerle çalışır.
options - Bu isteğe bağlı değer, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT’den oluşan bir bit maskesidir.
Misal
Aşağıdaki örnek, bir dizinin PHP ile JSON'a nasıl dönüştürüleceğini gösterir -
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
Yürütürken, bu aşağıdaki sonucu verecektir -
{"a":1,"b":2,"c":3,"d":4,"e":5}
Aşağıdaki örnek, PHP nesnelerinin JSON'a nasıl dönüştürülebileceğini gösterir -
<?php
class Emp {
public $name = "";
public $hobbies = "";
public $birthdate = "";
}
$e = new Emp();
$e->name = "sachin";
$e->hobbies = "sports";
$e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
$e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));
echo json_encode($e);
?>
Yürütürken, bu aşağıdaki sonucu verecektir -
{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}
PHP'de JSON kodunu çözme (json_decode)
PHP json_decode () işlevi, PHP'de JSON kodunu çözmek için kullanılır. Bu işlev, json'dan uygun PHP türüne kodu çözülen değeri döndürür.
Sözdizimi
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
Paramatörler
json_string - UTF-8 ile kodlanmış veri olması gereken kodlanmış bir dizedir.
assoc - Bu bir boole tipi parametresidir, TRUE olarak ayarlandığında, döndürülen nesneler ilişkilendirilebilir dizilere dönüştürülür.
depth - Özyineleme derinliğini belirten tamsayı tipi bir parametredir
options - JSON kod çözümünün tamsayı türünde bir bit maskesidir, JSON_BIGINT_AS_STRING desteklenir.
Misal
Aşağıdaki örnek, JSON nesnelerinin kodunu çözmek için PHP'nin nasıl kullanılabileceğini gösterir -
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
Yürütürken aşağıdaki sonucu üretecektir -
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}