現在の位置: ホーム> 最新記事一覧> PHPおよびMySQLでJSONネストされたオブジェクトを効率的に処理する方法(インスタンスの説明を含む)

PHPおよびMySQLでJSONネストされたオブジェクトを効率的に処理する方法(インスタンスの説明を含む)

M66 2025-06-22

PHPおよびMySQLでネストされたJSONオブジェクトを処理する方法

最新のWeb開発では、JSON(JavaScriptオブジェクト表記)は、フロントエンドおよびバックエンドのデータインタラクションの一般的な形式です。多層構造を含むネストされたJSONオブジェクトは、開発中にしばしば遭遇します。この記事では、PHPとMySQLを使用してデータベースを解析および構築し、対話する方法について説明します。

PHPでネストされたJSONデータを解析します

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に変換します

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文字列構造と一致します。

ネストされたJSONデータをMySQLデータベースに書き込みます

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データ構造の合理的な処理は、データ相互作用の重要な基礎です。