ホームページ  >  記事  >  バックエンド開発  >  PHP での json_decode 関数の使用方法の詳細な紹介

PHP での json_decode 関数の使用方法の詳細な紹介

不言
不言転載
2018-12-29 10:13:069907ブラウズ

この記事では、PHP での json_decode 関数の使用方法を詳しく紹介します。これには一定の参考値があります。必要な友人は参照できます。お役に立てれば幸いです。

json_decode 関数を使用して JSON 形式の文字列をデコードできることは誰もが知っています。一般的に使用される形式は次のとおりです:

<?php
$json = &#39;some_json_data&#39;;
$result = json_decode($json, true);

実際、json_decode() 関数には複数のパラメーターがあり、渡されるパラメーターに応じて関数の動作は異なります。

デコードされたデータ

json_decode() 関数が次のエラーを報告しているのを見たことがあるかもしれません:

Warning: json_decode() expects parameter 1 to be string, xxx given in

エラー メッセージによると、最初に各パラメータが表示されます。文字列型である必要があります。ただし、最初のパラメータは実際には次の 3 つの型にすることができます:

  • string

  • null

  • #bool

  • ##パラメータの種類に応じて、関数の戻り値も変わります。

戻り値

json_decode() 関数は、JSON データが正しく解析された場合、デフォルトで

オブジェクトを返します。

ただし、2 番目のパラメーターが true で渡されるか、4 番目のパラメーターが JSON_OBJECT_AS_ARRAY で渡されると、JSON データが正しく解析された場合、関数はオブジェクトではなく配列を返します。

太字のテキストに注意してください。json_decode() 関数は、JSON データを正しく解析するとオブジェクトまたは配列を返しますが、場合によっては、この関数は他のデータを返します:

String 型であり、正しい JSON 形式のデータであり、デコード後にオブジェクトまたは配列を返します
  • PHP 5.6 以降、JSON データには true、false、および null が存在します。使用されません 小文字形式では、デコードが失敗し、null が返されます。
  • 文字列型 'true'、'false'、'null' はそれ自体を返します (すべて小文字の場合)
  • その他の文字列型パラメータは null を返します
  • true / false / null は直接 null を返します
  • その他タイプ データはエラーを直接報告します
  • 3 番目のパラメータの再帰の深さが 1 の場合、null が直接返されます
  • そのため、foreach を使用してデコードしますデータを反復処理するときは、デコードされたデータが配列であるかどうかに注意する必要があり、そうでない場合は反復中にエラーが報告されます。
JSON 形式のデータの種類については、JSON 公式 Web サイトにアクセスしてください。

再帰の深さ

3 番目のパラメーターは再帰を表します。深さ。深さは 0 より大きくなければなりません。それ以外の場合は、エラーが報告されます。再帰の深さが 1 の場合、結果は null になるため、最小再帰の深さは 2 です。

デコード オプション

4 番目のパラメータは、オプションの設定に使用されます。

    JSON_PRETTY_PRINT
  • は、見やすくするためにいくつかの空白文字が挿入されています

  • JSON_UNESCAPED_SLASHES
  • エンコードしないでください

    /

  • JSON_UNESCAPED_UNICODE
  • Unicode 文字をエンコードしないでください。デフォルトでは、

    \uXXXX

  • エラーを処理します## にエンコードされます。

#json_last_error 関数、json_last_error_msg(PHP >= 5.5) 関数、および @ 演算子と組み合わせて使用​​することもできます:

<?php
$json = 'some_json_data';
$result = @json_decode((string)$json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    throw new Exception(json_last_error_msg());
}

以上がPHP での json_decode 関数の使用方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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