PHP配列とJson間の相互変換json_encode()とjson_decode()

2677 ワード

Jsonを使用するのはajaxオブジェクトを使用する場合,プログラムとJS関数の間のデータインタラクションのためであることが多い.JSはPHPの中の配列を知らないので、PHPもJSの中の配列やオブジェクトを知らない.Jsonはこの問題をよく解決した.
Jsonの概要
JSON(JavaScript Object Notation)は、軽量レベルのデータ交換フォーマットです.JavaScriptのサブセットに基づいています.これはJavaScriptがJsonを直接読み取ることができることを意味し、非常に便利です.
Jsonの具体的な形式は:1.オブジェクト
オブジェクトは無秩序な「名前/値」ペアのセットです.オブジェクトは「{」(左かっこ)で始まり、「}」(右かっこ)で終わります.各名前の後に":"(コロン);「,」(カンマ)で区切られた「名前/値」ペア.
例:{"username":"Eric","age":23,"sex":"man"}
コードの例:
<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>

2、配列
配列は値(value)の秩序化された集合です.配列は[](左中括弧)で始まり、[](右中括弧)で終わります.値の間に「,」(カンマ)で区切ります.
例えば、[Eric,23,man]
コードの例:
<script type="text/javascript">  
function getArray() { var arr = ["Jarry",23, ["www.xiaophper.com","[email protected]"]];
alert(arr[0]); alert(arr[1]); alert(arr[2][0]); alert(arr[2][1]); } getArray();
</script>

注意:オブジェクトと配列の2つの形式はJSの中の呼び出しの时に异なって、オブジェクトは"."呼び出し、配列は下付き[0]、[1]で呼び出されます.また、Json列を渡すときにstringタイプの値を引用符で囲むことにも注意してください.
PHPは配列をJsonの強大なPHPに変えてすでに内蔵関数を提供しました:json_encode()とjson_decode().わかりやすいjson_Encode()とは,PHP配列をJsonに変換することである.逆にjson_decode()はJsonをPHP配列に変換することである.
例:
$array = array("name" => "Eric","age" => 23); 
echo json_encode($array); : {“name”:”Eric”,”age”:
23}

次の例を見てみましょう.
$array = array(0 => "Eric", 1 => 23);   echo json_encode($array);

[Eric,23]以上の2つの例から分かるように、PHP配列のキーが数字であればjson_Encode()は、PHP配列のキーが文字列である場合、配列形式のJsonを返します.ではjson_encode()はオブジェクト形式のJsonを返します.さっき言ったばかりです.両者のjsでの呼び出しは異なる.実際、PHP配列のキーに文字列形式のキーがある限り、json_encode()はオブジェクト形式のJsonを返します.これは正しくない.なぜなら、PHPコードではエラーは発生しないが、このようなJsonをJS関数に渡すと、JSはこのJsonをオブジェクトとして扱い、オブジェクトは数値を属性名とすることは不可能であるからである.つまりJSはこれが何なのか分からない:user.0.username(中央は数値ゼロ)