json は utf-8 でエンコードされた文字のみを受け入れるため、php の関数 json_encode() のパラメーターは utf-8 でエンコードされている必要があります
json 形式:
============ = ===============
JSON 形式が間違っています:
$error_json = "{ 'name': 'jack' }"; //json 区切り文字は二重引用符のみです。許可されますが、一重引用符は許可されません
$error_json = '{ name: "jack" }' //JSON キーと値のペアの「キー」(コロンの左側の部分) は二重引用符を使用する必要があります
$ error_json = ' { "name": "baz", }' //最後の値の後にカンマは追加できません
====================; ===== ====
正しい json 形式
$yes_json= '{"name":"jack"}';
PHP での操作:
(1) .json_encode( )関数: 配列とオブジェクトをjson形式に変換します
例:
①キーと値のペアの配列をjson形式に変換し、オブジェクト形式のjsonになります
$arr = array ( 'a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo "json化後のarrは: ".json_encode($arr);
======================================== ==== =========
json化後のarrは: {"a":1,"b":2,"c":3,"d":4,"e":5 }
②インデックス配列をjson形式に変換すると、jsonの配列になります。 =================== [ "one","two","three"]
インデックス配列をオブジェクトに強制的に挿入します:
または json_encode ( $arr, JSON_FORCE_OBJECT );
③ public フィールドのみを残してクラスオブジェクトを json 形式に変換します
class ClassA {
エラーコード= '404';public $public_var = 'これは public_var '; private $ private_var = 'これは private_var '; protected $protected_var = 'これは protected_var '; ==================
$ClassA = 新しい ClassA;
echo $classA_json;
===== =======================================
{" public_var":"これは public_var です" }
(2).json_decode()関数は、2番目のパラメータが渡されると、デフォルトでjson形式の文字列をオブジェクトオブジェクトに変換します。 trueの場合、php配列に変換されます
例:
① phpオブジェクトに変換されます
$json = '{"a":1,"b":2," c":3 ,"d":4,"e":5}var_dump($json);
========================= ===== ================object(stdClass)#1 (5) { ["a"] => int(1) ["b" ] => int (2)
["c"] => int(3)["e"] => int(5)
②.php配列に変換します
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode( $json, true));
===================================== ======= ===
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => ; int(3)
[ "d"] => int(4)
["e"] => int(5)
}