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

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

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

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

<?php 
$url = 'https://example.com/XXXXXXXX';
// データを読み込み
$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データを取得し、オブジェクト・連想配列にそれぞれ変換する例となります。

simplexml_load_string関数での例

<?php
$url = "https://example.com/XXXXXXXX";
// データを読み込み
$xml  = file_get_contents($url);

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

// オブジェクトをJSONに変換
$json = json_encode($obj);
// JSONを連想配列に変換
$array = json_decode($json, true);
?>   

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

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

simplexml_load_file関数での例

<?php
$url = "https://example.com/XXXXXXXX";

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

// オブジェクトをJSONに変換
$json = json_encode($obj);
// JSONを連想配列に変換
$array = json_decode($json, true);
?> 

上記例では、simplexml_load_file関数を使い、引数に指定したXMLデータを読み込み・パース(解析)し、オブジェクトに変換しています。

連想配列に変換する場合は、上記、simplexml_load_string関数の場合と同じ手順となります。

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

外部データを読み込む方法として、file_get_contents関数以外にcURL関数を利用する方法もあります。

cURL関数は、多くの異なるプロトコルでサーバーと接続し通信できる関数となり、転送時にさまざまなオプションを設定することも可能です。

詳しくは以下のリンク先を参考にしてみてください。

参考サイトなど

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

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

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