之所以要用到Json,很多時候是因為使用ajax物件時,程式與JS函數之間的資料互動。因為JS不認識PHP中的數組,PHP也不認識JS中的數組或物件。 Json很好的解決了這個問題。
Json簡介
JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它基於JavaScript的子集,這意味著JavaScript可以直接讀取Json,非常方便。
Json的具體形式是:
1.物件
物件是一個無序的「『名稱/值』對」集合。一個物件以「{」(左括號)開始,「}」(右括號)結束。每個「名稱」後面跟著一個「:」(冒號);「『名稱/值』 對」之間使用「,」(逗號)分隔。
例如: {“username”: “Eric”,”age”:23,”sex”: “man”}
代碼範例:
?View Code JAVASCRIPT
<script type="text/javascript"> function getUser() { var user = { "username": "Eric", "age":23, "family": {"mother":"Marry","father":"Alon","brother":"Tom"} }; alert( user.username ); alert( user.age ); alert(user.family.brother); } getUser(); </script>
?
View Code JAVASCRIPT<script type="text/javascript"> function getArray() { var arr = ["Jarry",23, ["www.xiaophper.com","wxyh_999@126.com"]]; alert(arr[0]); alert(arr[1]); alert(arr[2][0]); alert(arr[2][1]); } getArray(); </script>
?
View Code PHP$array = array("name" => "Eric","age" => 23); echo json_encode($array);
PHP中將陣列轉換成Json
?
View Code PHP$array = array(0 => "Eric", 1 => 23); echo json_encode($array);
rrreee程式會印出:["Eric",23] 以上兩個例子可以看出,如果PHP數組的鍵都是數字,那麼json_encode()傳回一個數組形式的Json,如果PHP數組的鍵全是字串。那麼json_encode()就會回傳一個物件形式的Json。剛已經說過。兩者在js中的呼叫是不同的。
事實上,只要在PHP陣列的鍵中有一個字串形式的鍵,那麼json_encode()就會傳回物件形式的Json。這是不正確的。因為,雖然在PHP程式碼中不會出現錯誤,但如果將這樣的Json傳給JS函數,JS會將此Json當做一個對象,而對像是不可能以數字作為屬性名的。也就是說JS 不知道這是什麼 : user.0.username (中間是數字零)
轉載自:http://www.cnblogs.com/xmphoenix/archive/2011/05/26/2057963.html