最新のWeb開発では、JSON(JavaScriptオブジェクト表記)は、フロントエンドおよびバックエンドのデータインタラクションの一般的な形式です。多層構造を含むネストされたJSONオブジェクトは、開発中にしばしば遭遇します。この記事では、PHPとMySQLを使用してデータベースを解析および構築し、対話する方法について説明します。
PHPを使用してJSONを処理するための2つの一般的な関数は、 json_decode()とjson_encode()です。これは、JSON文字列をPHP変数に変換し、PHPデータをそれぞれJSON形式に変換するために使用されます。
ネストされたオブジェクトのJSONの例を見てみましょう。
{ 「名前」:「ジョン」、 「年齢」:25、 "住所": { 「ストリート」:「123 Main St」、 「都市」:「ニューヨーク」、 「状態」:「ニューヨーク」 } }
次のコードを使用して、PHPオブジェクトに変換できます。
$ json = '{ 「名前」:「ジョン」、 「年齢」:25、 "住所": { 「ストリート」:「123 Main St」、 「都市」:「ニューヨーク」、 「状態」:「ニューヨーク」 } } '; $ object = json_decode($ json);
オブジェクトのプロパティを介してネストされた値にアクセスします。
$ name = $ object-> name; //ジョン $ age = $ object-> age; // 25 $ Street = $ object-> address-> Street; // 123 Main St $ city = $ object-> address-> city; // ニューヨーク $ state = $ object-> address-> state; // NY
PHPオブジェクトをJSON形式に戻すこともできます。例は次のとおりです。
$ object = new stdclass; $ object-> name = 'john'; $ object-> age = 25; $ object-> address = new stdclass; $ object-> address-> Street = '123 Main St'; $ object-> address-> city = 'New York'; $ object-> address-> state = 'ny'; $ json = json_encode($ object);
この時点で、変数$ jsonの内容は、前の例の元のJSON文字列構造と一致します。
MySQLデータテーブルユーザーがあり、フィールドには次のものが含まれているとします。ID、名前、年齢、通り、都市、州、ネストされたJSONデータを分割してこのテーブルに書き込みたいと思います。
最初のステップは、JSONをPHPアレイにデコードすることです。
$ array = json_decode($ json、true);
次に、PDOを使用してデータベースに接続し、データを挿入します。
$ dsn = 'mysql:host = localhost; dbname = mydatabase'; $ username = 'username'; $ password = 'password'; $ pdo = new PDO($ dsn、$ username、$ password); $ stmt = $ pdo-> prepare( 'ユーザーへの挿入(名前、年齢、ストリート、都市、州)値(:name、:age、:street、:city、:state)'); $ stmt-> bindparam( ':name'、$ array ['name']); $ stmt-> bindparam( ':age'、$ array ['age']); $ stmt-> bindparam( ':street'、$ array ['address'] ['street']); $ stmt-> bindparam( ':city'、$ array ['address'] ['city']); $ stmt-> bindparam( ':state'、$ array ['address'] ['state']); $ stmt-> execute();
このコードは、ネストされたJSONデータフィールドを解析し、それぞれデータベースの対応する列に挿入します。
この記事を通して、PHPを使用してオブジェクトと配列の変換方法を含むネストされたJSON構造を処理し、PDOを介してこれらの構造化されたデータをMySQLデータベースに安全に記述する方法を習得しました。 API開発であろうとWebアプリケーションであろうと、ネストされたJSONデータ構造の合理的な処理は、データ相互作用の重要な基礎です。