1. 程式人生 > >php陣列轉 json陣列和物件

php陣列轉 json陣列和物件

PHP中將陣列轉變成Json
強大的PHP已經提供了內建函式:json_encode() 和 json_decode()。很容易理解,json_encode()就是將PHP陣列轉換成Json。相反,json_decode()就是將Json轉換成PHP陣列。

例如:

a r r a y

= a r r a y ( " n a m
e " = > " E r i c "
, " a g e " = > 23 ) ; e c h o j s o n e n c o d e ( array = array("name" => "Eric","age" => 23); echo json_encode( array);
程式將打印出 : {“name”:”Eric”,”age”:23}
再看下面的例子:

a r r a y = a r r a y ( 0 = > " E r i c " , 1 = > 23 ) ; e c h o j s o n e n c o d e ( array = array(0 => "Eric", 1 => 23); echo json_encode( array);
程式將打印出 :[“Eric”,23]
以上兩個例子可以看出,如果PHP陣列的鍵都是數字,那麼json_encode()返回一個數組形式的Json,如果PHP陣列的鍵全是字串。那麼json_encode()就會返回一個物件形式的Json。剛已經說過。兩者在js中的呼叫是不同的。
事實上,只要在PHP陣列的鍵中有一個字串形式的鍵,那麼json_encode()就會返回物件形式的Json。這是不正確的。因為,雖然在PHP程式碼中不會出現錯誤,但要是將這樣的Json傳給JS函式,JS會將此Json當做一個物件,而物件是不可能以數字作為屬性名的。也就是說JS 不知道這是什麼 : user.0.username (中間是數字零)