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)
}