ホームページ >バックエンド開発 >PHPチュートリアル >PHP の json_encode と json_decode の違いを理解する

PHP の json_encode と json_decode の違いを理解する

coldplay.xixi
coldplay.xixi転載
2020-07-18 17:01:332645ブラウズ

PHP の json_encode と json_decode の違いを理解する

1. json_encode() JSON は変数をエンコードします

##構文: json_encode($value[,$options=0])
  • 注: 1. $value はエンコードされる値であり、この関数は UTF8 でエンコードされたデータに対してのみ有効です。 2. オプション: 次の定数で構成されるバイナリ マスク: JSON_HEX_QUOT、JSON_HEX_TAG、JSON_HEX_AMP、PRINT、JSON_UNESCAPED_SLASHES、JSON_FORCE_OBJECT;
  • 3. 2 番目のパラメータは通常は必要ありません。
  • 4. JSON データは実際には文字列であり、var_dump() を使用して出力してデータ型を確認できます。 5. 実行が成功するとJSONデータが返され、それ以外の場合はFALSEが返されます。


    例:
    $book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
    $json = json_encode($book);
    echo $json;
  • ブラウザによって出力される結果は次のとおりです:

{"a":"xiyouji","b": "sanguo ","c":"shuihu","d":"hongloumeng"}

##2. json_decode() は JSON データをデコードし、PHP 変数に変換します

構文: json_decode($json[,$assoc=false[,$ Depth=512[,$options=0]]])注: 1 , $json はデコードするデータであり、utf8 でエンコードされたデータである必要があります。 2. $assoc 値が TRUE の場合は配列を返し、FALSE の場合はオブジェクトを返します;

3. $ Depth は再帰の深さです;
    4. $option バイナリ マスク、現在は JSON_BIGINT_AS_STRING のみをサポートします;
  • 5. 通常、最初の 2 つのパラメータのみが使用されますが、データ型のデータが必要な場合は、パラメータ true を追加します。

  • 例:
    $book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
      $json = json_encode($book);
      
      $array = json_decode($json,TRUE);
      $obj = json_decode($json);
      var_dump($array);
      var_dump($obj);

    ブラウザによって出力される結果は次のとおりです。
array(4) { ["a"]=> string( 7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) " hongloumeng" }

object(stdClass)#2 (4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c" ]= > string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }

2 つの結果はあまり変わらないようですが、内部の要素が呼び出されます。array と obj のメソッドは異なります。
$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
  $json = json_encode($book);
  
  $array = json_decode($json,TRUE);
  $obj = json_decode($json);
  var_dump($array['b']);//调用数组元素
  echo &#39;<br/>&#39;;
  var_dump($obj->c);//调用对象元素

出力結果は次のとおりです:

string(6) "sanguo" string(6) "shuihu"

これで概要は終わりですこの記事の分析 これで、PHP における json_encode と json_decode の違いに関する記事は終わりました。PHP の json_encode と json_decode について詳しくは、Script House の過去の記事を検索するか、引き続き以下の関連記事を参照してください。未来!

関連する学習の推奨事項:

PHP プログラミングの入門から熟練度まで

以上がPHP の json_encode と json_decode の違いを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。