***

8444 ワード

Json形式規則
詳しくはチェン一峰先生のネットログ-並列のデータの間はカンマ(")で、")区切り-マッピングはコロン(")""-並列のデータの集合(配列)は四角カッコ("[])で表します-マッピングの集合(対象)は大かっこ("{}")で表します
ここではチェン一峰先生の例を取って、「北京市の面積は16800平方キロメートルで、常住人口は1600万人です.上海市の面積は6400平方キロメートルで、常住人口は1800万人です」という言葉を残した.json形式に書くとこうなります.
[
  {"  ":"  ","  ":16800,"  ":1600},
  {"  ":"  ","  ":6400,"  ":1800}
]

JSにおける配列とオブジェクトの違い
  • 配列は、秩序化されたデータの集合を表し、オブジェクトは、無秩序なデータの集合を表す.データの順序が重要であれば、配列を使用し、そうでなければオブジェクト
  • を使用します.
  • もう一つの違いは、配列のデータには「名前」(name)がなく、オブジェクトのデータには「名前」(name)
  • があることです.
    JSでは、関連配列はオブジェクトであり、オブジェクトは関連配列であり、例えばオブジェクト:
    var a={"  ":"  ","  ":16800,"  ":1600};

    関連配列の形式で作成:
    a["  "]="  ";
    a["  "]=16800;
    a["  "]=1600;

    この点はphp言語とは全く異なり,phpでは関連配列も配列である.
    var a=[1,2,3,4];
    a['foo']='Hello World';
    alert(a.length);//4

    JSでの最後の結果は4,つまり配列aの要素個数は4である.ただし、同じコンテンツを実行するphpコードは異なります.
    <?php $a=array(1,2,3,4); $a["foo"]="Hello world"; echo count($a); ?>

    最後の結果は5,すなわち配列aの要素個数は5である.
    PHPでjsonを操作する関数
  • 暗号化json_encode
  • 復号json_decode

  • 1 D配列からjsonデータフォーマットへの変換
    <?php $arr_1 = array(); $arr_1['username'] = 'lisi'; $arr_1['age'] = 20; echo json_encode($arr_1);//{"username":"lisi","age":20} ?>

    多次元配列からjsonデータフォーマットへの変換
    <?php
    $arr_2 = array();
    //     
    $arr_2['member']['lisi']['job'] = "worker";
    $arr_2['member']['lisi']['age'] = 30;
    $arr_2['member']['wangwu']['job'] = "student";
    $arr_2['member']['wangwu']['age'] = 10;
    
    echo json_encode($arr_2);
    //{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}}
      ?>

    オブジェクトからjsonデータフォーマットへの変換
    オブジェクトがjsonデータに変換されると、公有変数のみが変換され、プライベート変数は変換されません.
    <?php class Person{ public $name = "public name"; protected $ptName = "protected name"; private $pName = "private name"; public function sayName(){ return $this->name; } } $person1 = new Person(); echo json_encode($person1);//{"name":"public name"} ?>

    jsonデータフォーマットをオブジェクトタイプに変換
    <?php $jsonStr = '{"key1":"value1","key2":"value2"}'; print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2 ?>

    jsonデータフォーマットを配列タイプに変換
    <?php $jsonStr = '{"key1":"value1","key2":"value2"}'; print_r(json_decode($jsonStr,true));//Array ( [key1] => value1 [key2] => value2 ) ?>

    json_decode($jsonStr,true); 2番目のパラメータがtrueの場合、結果はarrayタイプに変換され、パラメータはfalse、デフォルトはオブジェクトに変換されます.