PHP 開発で json を使用する理由は、プログラムと JS 関数の間でデータをやり取りするために ajax オブジェクトがよく使用されるためです。 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. 配列
配列は値シーケンスのコレクションです。コレクション。配列は「[」 (左括弧) で始まり、「]」 (右括弧) で終わります。値は「,」(カンマ)で区切ります。
例: ["Eric",23, "man"]
コード例:
<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>
注: JS では、オブジェクトと配列は異なる方法で呼び出されます。オブジェクトは「.」で呼び出され、配列は添え字によって呼び出されます。 [0]と[1]。また、Json 文字列を渡すときは、文字列型の値を引用符で囲む必要があることにも注意してください。
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() は配列の形式で Json を返します。PHP 配列のキーがすべての文字列。次に、 json_encode() はオブジェクトの形式で Json を返します。ただそれを言いました。 js での 2 つの呼び出しは異なります。
実際、PHP 配列のキーに文字列形式のキーが存在する限り、 json_encode() はオブジェクトの形式で Json を返します。これは正しくありません。なぜなら、PHP コードにはエラーはありませんが、そのような Json が JS 関数に渡されると、JS はこの Json をオブジェクトとして扱い、オブジェクトが プロパティ 名として数値を使用することは不可能だからです。言い換えると、JS はこれが何であるかを知りません: user.0.username (真ん中は数字のゼロです)
類似の読み方:
以上がPHP配列はJSON文字列を変換しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。