自 PHP 5.2.0 起,JSON 擴充預設內建並編譯進了 PHP。
JSON 序列化介面JsonSerializable
實作 JsonSerializable 的類別可以 在 json_encode() 時自訂他們的 JSON 表示法。
JsonSerializable::jsonSerialize — 指定需要被序列化成JSON 的資料
Example #1 回傳一個陣列
<?php class ArrayValue implements JsonSerializable { public function __construct(array $array) { $this->array = $array; } public function jsonSerialize() { return $this->array; } } $array = [1, 2, 3]; echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT); ?>
以上例程會輸出:輸出:
[ 1, 2, 3 ]
Example #3 回傳一個整數數字
<?php class ArrayValue implements JsonSerializable { public function __construct(array $array) { $this->array = $array; } public function jsonSerialize() { return $this->array; } } $array = ['foo' => 'bar', 'quux' => 'baz']; echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT); ?>
以上程式會輸出:
1
Example #4 傳回一個以上函reee
reee
JSON 函數
json_decode — 對JSON 格式的字串進行編碼