【PHP】JSON・XMLデータを取得し、オブジェクト・連想配列に変換する例

今回は、PHPで取得したJSON・XMLデータを、PHPで扱えるオブジェクト・連想配列に変換する例となります。

JSONデータをオブジェクト・連想配列に変換する例

以下、APIなどの外部のJSONデータを取得し、json_decode関数で、オブジェクト・連想配列にそれぞれ変換する例となります。

// JSONデータを返すAPIのエンドポイント
$url = 'https://example.com/XXXXXXXX';
// JSONデータを読み込み
$json = file_get_contents($url); 
// 読み込んだデータ内の文字列をUTF-8に変換
$json = mb_convert_encoding($json, 'UTF-8', 'ASCII, JIS, UTF-8, eucJP-win, SJIS-win');

// JSONをオブジェクトに変換
$obj = json_decode($json);

// JSONを連想配列に変換
$array = json_decode($json, true);

上記例では、まず、file_get_contents関数で読み込んだJSONデータを、mb_convert_encoding関数でUTF-8の文字コードに変換します。

mb_convert_encoding関数では、第1引数に変換する文字列を指定します。そして、第2引数には変換後、第3引数には変換したい文字エンコーディングを指定します。

そして、JSONデータを変換できるjson_decode関数を利用し、オブジェクト・連想配列にそれぞれ変換しています。

なお、json_decode関数で連想配列に変換する場合は、第2引数に trueを指定します。

XMLデータをオブジェクト・連想配列に変換する例

以下、APIなどの外部のXMLデータを取得し、オブジェクト・連想配列にそれぞれ変換する例となります。

// XMLデータを返すAPIのエンドポイント
$url = "https://example.com/XXXXXXXX";
// XMLデータを読み込み
$xml  = file_get_contents($url);

// XMLデータをオブジェクトに変換
$obj = simplexml_load_string($xml);

// オブジェクトをJSONに変換し、そのJSONを連想配列に変換
$array = json_decode(json_encode($obj), true);

上記例では、まず、file_get_contents関数で読み込んだXMLデータを、simplexml_load_string関数を使いオブジェクトに変換しています。

連想配列に変換する場合には、JSONデータに変換できるjson_encode関数を利用し、オブジェクトのデータをJSONデータに変換し、そのJSONデータをjson_decode関数を利用し連想配列に変換しています。

なお、json_decode関数で連想配列に変換する場合は、第2引数に trueを指定します。

file_get_contents関数以外で外部データを読み込む方法

今回の例では、外部データを読み込む際にfile_get_contents関数を利用しましたが、cURL関数を使い外部データを取得する方法もあります。

また、cURL関数ではデータ転送時にさまざまなオプションを設定することも可能です。詳しくは、以下のリンク先を参考にしてみてください。

参考サイトなど

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。