PHP では、JSON 形式のデータを PHP で使用できる配列に変換する必要があることがよくあります。このプロセスは通常、JSON 解析と呼ばれます。 PHP では JSON を解析する方法がたくさんありますが、PHP には非常に便利な関数 json_decode() が付属しており、これを使用すると、JSON 形式の文字列を PHP の配列またはオブジェクトにすばやく変換できます。
- json_decode() 関数の概要
json_decode() 関数は、JSON 形式のデータを解析するために PHP 関数ライブラリによって提供される関数です。関数の宣言は次のとおりです。
mixed json_decode ( string $json [, bool $assoc = false [, int $ Depth = 512 [, int $options = 0 ]]] )
このうち、$json は解析が必要な JSON 形式のデータで、$assoc は JSON データを PHP 連想配列に変換するかどうかを示します。パラメータ $ Depth は JSON データの解析の最大深さを定義し、$options は解析オプションを設定できます。
- JSON 形式のデータを PHP 配列に変換する
JSON 形式のデータを PHP 配列に変換する方法は非常に簡単で、json_decode() 関数に $assoc を追加するだけです。パラメータを true に設定します。たとえば、次は単純な JSON 形式のデータです:
$jsonStr = '{"name":"Li Lei","age":20,"gender":"male","address": { "省":"山東","市":"青島","地区":"四方区"}}';
$arr = json_decode($jsonStr, true);
# 上記のコードでは、JSON データを PHP 連想配列に変換するために、$assoc パラメーターを true に設定しています。変数 $arr は、必要な JSON データの後の PHP 配列です。 $arr のメンバーは、$arr['name']、$arr['age']、$arr'address' などの配列添字を通じて取得できるようになりました。
JSON 形式のデータを PHP オブジェクトに変換する-
JSON 形式のデータを PHP オブジェクトに変換する場合は、 json_decode() 関数で $assoc パラメータを設定できます。 false にするか、設定しないでください。たとえば、次は単純な JSON 形式のデータです:
$jsonStr = '{"name":"Li Lei","age":20,"gender":"male","address": { "省":"山東","市":"青島","地区":"四方区"}}';
$obj = json_decode($jsonStr);
上記のコードでは、$assoc パラメーターが true に設定されておらず、json_decode() 関数は PHP オブジェクトを返します。次に、$obj->name、$obj->age、$obj->address->province およびその他の同様の構文を使用して、JSON データ変換後に PHP オブジェクト内のデータを取得します。
JSON 形式データの解析でよくある間違い-
JSON 形式データを解析するときに、API から取得したデータが正常に変換できないという問題がよく発生します。
4.1 JSON 形式エラー
json_decode() 関数が JSON 形式のデータを解析できない可能性があります。このとき、JSONLint などのツールを使用できます。オンライン検査と検証のため。
4.2 データ処理エラー
取得した JSON データを正常に変換するには、何らかの処理が必要な場合があります。たとえば、JSON データにコメントが含まれており、UTF-8 でエンコードされていない場合です。データ処理を行ってから解析する必要があります。
4.3 未定義/不明な要素
PHP 配列およびオブジェクトで、存在しないキーワードまたはオブジェクト属性名を使用しようとすると、プログラムはエラーを報告するため、次のことを確認する必要があります。 JSON データを解析するときのデータの整合性。
概要-
PHP では、json_decode() 関数を使用して、JSON 形式のデータを PHP 配列またはオブジェクトに簡単に変換できます。 JSON 形式のデータではさまざまなエラーが発生することが多いため、JSON データを解析する際にはデータの整合性を確保し、エラーにタイムリーに対処する必要があります。
以上がPHPでJSON文字列を配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。