時代の発展とテクノロジーの進歩に伴い、インターネットの世界はますます複雑になり、データの形式もますます多様化しています。データの送信と処理のプロセスでは、Json と Xml の 2 つの代表的なデータ形式が使用されます。 Php では、Json と Xml は比較的一般的なデータ形式ですが、Json を Xml に変換する必要がある場合があります。この記事では、Phpを使ってJsonをXmlに変換する方法を紹介します。
1. Json と Xml の違い
Json と Xml はどちらもデータの書式設定と交換に使用されるデータ形式ですが、この 2 つの間には明らかな違いがいくつかあります。
Json (JavaScript Object Notation) は、人間が読み書きしやすい軽量のデータ交換形式です。 Json はキーと値のペアの形式で表現され、多くのプログラミング言語には対応する Json パーサーがあります。 Json データ形式では、中括弧はオブジェクト属性を含めるために使用され、角括弧は配列を表し、コンマはさまざまなキーと値のペアを区切るために使用されます。 Json データ形式は、そのシンプルさ、明確さ、読みやすさと使いやすさから、現在、Web アプリケーションやモバイル アプリケーションの開発で広く使用されています。
Xml (Extensible Markup Language) は、データの表現と送信に使用される一般的なマークアップ言語です。 XML タグは、ネスト、属性、名前空間、その他の機能をサポートできます。 XML データ形式では、ラベルを表すために左および右の山括弧が使用され、特殊文字を表すためにバックスラッシュ エスケープ文字が使用されます。 XML データ形式は、その拡張性、明確なセマンティクス、および優れた理解性により、現在さまざまな企業間のデータ交換に広く使用されています。
2. Php を使用して Json を Xml に変換します
Php では、SimpleXMLElement クラスを使用して Json を Xml に変換できます。 SimpleXMLElement は、Xml の処理に適したクラスです。Php5 以降のバージョンでは、この拡張機能がデフォルトでインストールされ、有効になります。サンプルコードは次のとおりです:
$json = '{"name":"Tom","age":29,"gender":"male"}'; $xml = new SimpleXMLElement('<root/>'); array_walk_recursive(json_decode($json, true), array($xml, 'addChild')); echo $xml->asXML();
上記のコードを説明すると、まず、Json 文字列 $json を定義します。次に、SimpleXMLElement クラスを使用して、Xml オブジェクト $xml を作成します。次に、array_walk_recursive() 関数を使用して addChild() メソッドを 1 つずつ呼び出し、json_decode() 関数によって解析された配列にノードを追加します。最後に、関数 asXML() を使用して、xml オブジェクトを出力用の文字列に変換します。
3. Json には配列の入れ子が含まれています
上記の例は単純な Json オブジェクトのみを解析します。Json に配列の入れ子などの複雑なデータ構造が含まれる場合は、再帰メソッドを使用する必要があります。
次は、ネストされた配列を含む Json 文字列の例です:
{ "id": "1", "name": "Jack", "skills": [ { "id": "1", "skill_name": "php" }, { "id": "2", "skill_name": "javascript" } ] }
上記の Json 文字列を Xml に変換するには、次のサンプル コードを使用できます:
$json = '{ "id": "1", "name": "Jack", "skills": [ { "id": "1", "skill_name": "php" }, { "id": "2", "skill_name": "javascript" } ] }'; $data = json_decode($json, true); $xml = new SimpleXMLElement(''); array_walk_recursive($data, array($xml, 'addChild')); echo $xml->asXML();
このコードの説明 まず、配列のネストを含む Json 文字列 $json を定義します。次に、 json_decode() 関数を使用して Json 文字列を解析して配列にし、変数 $data に保存します。次に、SimpleXMLElement を使用して、Xml オブジェクト $xml を作成します。最後に、array_walk_recursive() 関数を使用して $data 内の各要素を走査し、addChild() メソッドを使用してキーと値のペアを $xml オブジェクトに追加します。最後に、asXML() 関数を使用して、Xml オブジェクトを文字列に変換し、出力します。
4. まとめ
この記事では、Phpを使ってJson形式のデータをXmlに変換する方法を詳しく紹介します。要約すると、SimpleXMLElement クラスを使用すると、Xml 形式のデータをより簡単に処理できます。 Json データを XML データに変換する場合、元の Json データを再帰的に走査する必要があります。実際のアプリケーションでは、実際のビジネス ロジックのニーズを満たすために、特定のニーズに応じて特定の変更や拡張を行う必要があります。
以上がphp が json 形式を xml 形式に変換する方法の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。