Heim > Backend-Entwicklung > PHP-Problem > Einführung in die JSON- und XML-Formatkonvertierung in PHP

Einführung in die JSON- und XML-Formatkonvertierung in PHP

PHPz
Freigeben: 2023-03-31 09:48:28
Original
798 Leute haben es durchsucht

Während des Entwicklungsprozesses ist die Datenformatkonvertierung ein häufiges Problem. In PHP sind die beiden am häufigsten verwendeten Datenformate JSON und XML. JSON ist ein leichtes Datenaustauschformat, das leicht zu lesen und zu schreiben ist, während XML eine erweiterbare Auszeichnungssprache ist, die häufig bei der Web-Datenübertragung und der Speicherung von Konfigurationsdateien verwendet wird.

In diesem Artikel erfahren Sie, wie Sie das JSON-Format in PHP in das XML-Format konvertieren.

1. JSON zu XML

PHP bietet die Funktion json_decode(), mit der JSON-Daten in das XML-Format konvertiert werden können. Die Syntax lautet wie folgt:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Nach dem Login kopieren

Darunter stellt $json die zu konvertierende JSON-Zeichenfolge dar, $assoc stellt dar, ob das JSON-Objekt in ein assoziatives Array konvertiert werden soll (Standard ist falsch), $ Depth stellt die maximale Rekursionstiefe dar (Standard). ist 512), $options gibt Konvertierungsoptionen an (Standard ist 0).

Das Folgende ist ein Beispiel für die Konvertierung eines JSON-Arrays in XML:

<?php
// JSON数据
$json_data = &#39;{
    "students": [
        {
            "name": "David",
            "age": 20,
            "score": {
                "English": 90,
                "Math": 85,
                "Chinese": 95
            }
        },
        {
            "name": "Tom",
            "age": 22,
            "score": {
                "English": 80,
                "Math": 75,
                "Chinese": 85
            }
        }
    ]
}&#39;;

// 将JSON数据转换成PHP数组
$php_data = json_decode($json_data, true);

// 将PHP数组转换成XML格式
$xml_data = new SimpleXMLElement(&#39;<?xml version="1.0" encoding="UTF-8"?><data></data>');
array_to_xml($php_data, $xml_data);

// 输出XML格式数据
header('Content-type: text/xml');
echo $xml_data->asXML();

// 将数组转换成XML格式的函数
function array_to_xml($arr, &$xml) {
    foreach ($arr as $key => $value) {
        if (is_array($value)) {
            if (!is_numeric($key)) {
                $subnode = $xml->addChild("$key");
                array_to_xml($value, $subnode);
            } else {
                array_to_xml($value, $xml);
            }
        } else {
            $xml->addChild("$key", htmlspecialchars("$value"));
        }
    }
}
?>
Nach dem Login kopieren

Der obige Code konvertiert zunächst die JSON-Zeichenfolge in ein PHP-Array und verwendet dann eine rekursive Funktion, um das PHP-Array in das XML-Format zu konvertieren.

Die ausgegebenen XML-Formatdaten lauten wie folgt:

<?xml version="1.0" encoding="UTF-8"?>
<data>
  <students>
    <0>
      <name>David</name>
      <age>20</age>
      <score>
        <English>90</English>
        <Math>85</Math>
        <Chinese>95</Chinese>
      </score>
    </0>
    <1>
      <name>Tom</name>
      <age>22</age>
      <score>
        <English>80</English>
        <Math>75</Math>
        <Chinese>85</Chinese>
      </score>
    </1>
  </students>
</data>
Nach dem Login kopieren

2. XML in JSON

Um das XML-Format in das JSON-Format zu konvertieren, müssen Sie zuerst XML in ein PHP-Array konvertieren und dann die Funktion json_encode() zum Konvertieren verwenden PHP-Array in JSON-Zeichenfolge. Das Folgende ist ein Beispiel für die Konvertierung von XML in JSON:

children() as $element) {
        if (count($element->children()) == 0) {
            $arr[$element->getName()] = strval($element);
        } else {
            $arr[$element->getName()][] = xml_to_array($element);
        }
    }
    return $arr;
}
?>
Nach dem Login kopieren

Der obige Code konvertiert zunächst die XML-Zeichenfolge über die Funktion simplexml_load_string() in ein SimpleXMLElement-Objekt und dann das SimpleXMLElement-Objekt über die rekursive Funktion in ein PHP-Array. Verwenden Sie abschließend die Funktion json_encode(), um das PHP-Array in einen JSON-String zu konvertieren.

Die Ausgabedaten im JSON-Format lauten wie folgt:

{
  "students": [
    {
      "name": "David",
      "age": "20",
      "score": {
        "English": "90",
        "Math": "85",
        "Chinese": "95"
      }
    },
    {
      "name": "Tom",
      "age": "22",
      "score": {
        "English": "80",
        "Math": "75",
        "Chinese": "85"
      }
    }
  ]
}
Nach dem Login kopieren

Zusammenfassung

PHP bietet praktische Funktionen zum Konvertieren des JSON-Formats in das XML-Format und des XML-Formats in das JSON-Format. Während des Entwicklungsprozesses kann durch Auswahl des geeigneten Datenformats für die Speicherung und den Austausch entsprechend den tatsächlichen Anforderungen eine bessere Datenübertragung und ein besserer Leseeffekt erzielt werden.

Das obige ist der detaillierte Inhalt vonEinführung in die JSON- und XML-Formatkonvertierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage