ホームページ  >  記事  >  バックエンド開発  >  PHP配列とJson間の変換

PHP配列とJson間の変換

WBOY
WBOYオリジナル
2016-08-08 09:27:341232ブラウズ

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>

2。配列は、順序付けられた値のコレクションです。配列は「[」 (左括弧) で始まり、「]」 (右括弧) で終わります。値を区切るには「,」(カンマ)を使用します。

例: ["Eric",23, "man"]

コード例:

?

コードを見る PHP

<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>
注: オブジェクトと配列は、「.」で呼び出されるオブジェクトで異なります。配列は添字 [0]、[1] を付けて呼び出されます。また、Json 文字列を渡すときは、文字列型の値を引用符で囲む必要があることにも注意してください。

PHP で配列を Json に変換する

強力な PHP には、組み込み関数 json_encode() と json_decode() がすでに提供されています。 json_encode() が PHP 配列を Json に変換することを理解するのは簡単です。逆に、 json_decode() は Json を PHP 配列に変換します。


例:

?

View Code PHP

$array = array("name" => "Eric","age" => 23);   echo json_encode($array);
プログラムは次のように出力します: {"name":"Eric","age":23}

次の例をもう一度見てください:

?

コード PHP を表示

$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 (真ん中は数字のゼロです)

転載元: http://www.cnblogs.com/xmphoenix/archive/2011/05/26/ 2057963.html

上記では、PHP 配列と Json 間の変換について、関連する側面も含めて紹介しています。PHP チュートリアルに興味のある友人にとって役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。