***
Json形式規則
詳しくはチェン一峰先生のネットログ-並列のデータの間はカンマ(")で、")区切り-マッピングはコロン(")""-並列のデータの集合(配列)は四角カッコ("[])で表します-マッピングの集合(対象)は大かっこ("{}")で表します
ここではチェン一峰先生の例を取って、「北京市の面積は16800平方キロメートルで、常住人口は1600万人です.上海市の面積は6400平方キロメートルで、常住人口は1800万人です」という言葉を残した.json形式に書くとこうなります.
JSにおける配列とオブジェクトの違い配列は、秩序化されたデータの集合を表し、オブジェクトは、無秩序なデータの集合を表す.データの順序が重要であれば、配列を使用し、そうでなければオブジェクト を使用します.もう一つの違いは、配列のデータには「名前」(name)がなく、オブジェクトのデータには「名前」(name) があることです.
JSでは、関連配列はオブジェクトであり、オブジェクトは関連配列であり、例えばオブジェクト:
関連配列の形式で作成:
この点はphp言語とは全く異なり,phpでは関連配列も配列である.
JSでの最後の結果は4,つまり配列aの要素個数は4である.ただし、同じコンテンツを実行するphpコードは異なります.
最後の結果は5,すなわち配列aの要素個数は5である.
PHPでjsonを操作する関数暗号化json_encode 復号json_decode
1 D配列からjsonデータフォーマットへの変換
多次元配列からjsonデータフォーマットへの変換
オブジェクトからjsonデータフォーマットへの変換
オブジェクトがjsonデータに変換されると、公有変数のみが変換され、プライベート変数は変換されません.
jsonデータフォーマットをオブジェクトタイプに変換
jsonデータフォーマットを配列タイプに変換
json_decode($jsonStr,true); 2番目のパラメータがtrueの場合、結果はarrayタイプに変換され、パラメータはfalse、デフォルトはオブジェクトに変換されます.
詳しくはチェン一峰先生のネットログ-並列のデータの間はカンマ(")で、")区切り-マッピングはコロン(")""-並列のデータの集合(配列)は四角カッコ("[])で表します-マッピングの集合(対象)は大かっこ("{}")で表します
ここではチェン一峰先生の例を取って、「北京市の面積は16800平方キロメートルで、常住人口は1600万人です.上海市の面積は6400平方キロメートルで、常住人口は1800万人です」という言葉を残した.json形式に書くとこうなります.
[
{" ":" "," ":16800," ":1600},
{" ":" "," ":6400," ":1800}
]
JSにおける配列とオブジェクトの違い
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を操作する関数
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、デフォルトはオブジェクトに変換されます.