8月
3
2006
分類:
最近更新:
2006-08-03
PHP~~JSON in PHP
What is JSON (JavaScript Object Notation): Introducing JSON
目前已有多種方式可在 PHP 中運用 JSON 。個人建議使用 php-json ,這是 C 語言實作的 PHP extension 。
php-json 以 GNU LGPL 條款散佈,目前的 Debian unstable 版本,已經提供了 php-json 的 package 。在作者的網站上,則可以下載原始碼和 win32 版本的 binary ,我在 win32 版本的 PHP5 中使用正常。由於是 native function 的形式,故速度最快,優於其他以 PHP 實作者。但缺點是,並非多數系統預設安裝的 PHP extension ,特別是虛擬主機的用戶,通常不會支援 php-json 。此時只能選擇以 PHP 實作者,例如: Services_JSON (BSD license),或者是Zend-Json (New BSD license)。
使用方法大同小異,都是一對相應函數,以 php-json 為例,即為 json_encode()/json_decode() 。可見作者網站之範例,或如下範例,還有PHP::serialize and unserialize with Form 的範例。注意, JSON 規範使用 UTF-8 字元,因此在非 UTF-8 環境下,需先用 iconv() 將非 UTF-8 字元轉換成 UTF-8 字元。例如以下的範例,由於沒有調用 iconv() 轉成編碼,在非 UTF-8 環境下,會發生錯誤。如果是在 UTF-8 環境下,就沒有問題。
<?php
$ar = array(
array(
'Name' => '涼宮ハルヒン',
'Book' => '涼宮ハルヒの憂鬱',
'Attrib' => 'SOS団長'
),
array(
'Name' => 'キョン',
'Book' => '涼宮ハルヒの憂鬱',
'Attrib' => '普通人'
),
array(
'Name' => '長門有希',
'Book' => '涼宮ハルヒの憂鬱',
'Attrib' => '宇宙人'
),
array(
'Name' => '朝比奈みくる',
'Book' => '涼宮ハルヒの憂鬱',
'Attrib' => '穿越時空的少女'
),
array(
'Name' => '古泉一樹',
'Book' => '涼宮ハルヒの憂鬱',
'Attrib' => '超能力戰隊少年'
)
);
$serialized_ar = json_encode($ar);
$ar2 = json_decode($serialized_ar);
var_dump($ar2);
?>
相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/1966080.html
樂多舊回應