JSON (JavaScript Object Notation) は軽量のデータ交換形式です。人間が判読できるテキストを使用して、データ オブジェクトを転送および保存します。 XML とは異なり、JSON は解析と処理が容易なため、Web アプリケーションとサーバー間でデータを転送および交換するときによく使用されます。
PHP では、組み込みの json_decode 関数を使用して、JSON 文字列を PHP オブジェクトに変換できます。たとえば、次の例では、JSON 文字列を PHP オブジェクトに解析します。
<?php $json_string = '{"name":"John", "age":30, "city":"New York"}'; $obj = json_decode($json_string); echo $obj->name; //输出 John echo $obj->age; //输出 30 echo $obj->city; //输出 New York ?>
この関数は、解析対象の JSON 文字列と、解析された JSON オブジェクトを PHP オブジェクトに変換することを示すブール変数 (デフォルトは false) または連想配列 (true) です。
ただし、JSON データにオブジェクトの配列またはオブジェクトの配列が含まれている場合は、再帰関数を使用して処理する必要があります。 JSON データにネストされたオブジェクト配列とオブジェクト配列が含まれる例を次に示します。
{ "employees": [ { "name": "John Doe", "email": "john@example.com", "phones": [ { "type": "home", "number": "555-555-1234" }, { "type": "work", "number": "555-555-5678" } ] }, { "name": "Jane Smith", "email": "jane@example.com", "phones": [ { "type": "home", "number": "555-555-4321" }, { "type": "work", "number": "555-555-8765" } ] } ] }
このようなデータを解析するには、JSON オブジェクト全体を反復処理して PHP オブジェクトまたは配列に変換する再帰関数を作成できます。 。 JSON オブジェクト配列、オブジェクト配列、および標準 JSON オブジェクトを処理する関数の例を次に示します。
$value) { if (is_object($value)) { $result[$key] = json_to_array($value); } else if (is_array($value)) { $result[$key] = []; foreach ($value as $item) { $result[$key][] = json_to_array($item); } } else { $result[$key] = $value; } } return $result; } $json_string = '{ "employees": [ { "name": "John Doe", "email": "john@example.com", "phones": [ { "type": "home", "number": "555-555-1234" }, { "type": "work", "number": "555-555-5678" } ] }, { "name": "Jane Smith", "email": "jane@example.com", "phones": [ { "type": "home", "number": "555-555-4321" }, { "type": "work", "number": "555-555-8765" } ] } ] }'; $obj = json_decode($json_string); $array = json_to_array($obj); print_r($array); ?>
この関数は、すべてのネストされたオブジェクト配列およびオブジェクトの JSON データを含む PHP 配列を返します。
以上がPHP が JSON データを解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。