Maison  >  Article  >  développement back-end  >  Présentation de la conversion des formats JSON et XML en PHP

Présentation de la conversion des formats JSON et XML en PHP

PHPz
PHPzoriginal
2023-03-31 09:06:24755parcourir

Pendant le processus de développement, la conversion du format de données est un problème courant. En PHP, les deux formats de données couramment utilisés sont JSON et XML. JSON est un format d'échange de données léger, facile à lire et à écrire, tandis que XML est un langage de balisage extensible largement utilisé dans la transmission de données Web et le stockage de fichiers de configuration.

Cet article expliquera comment convertir le format JSON au format XML en PHP.

1. JSON vers XML

PHP fournit la fonction json_decode() qui peut être utilisée pour convertir les données JSON au format XML. La syntaxe est la suivante :

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

Parmi eux, $json représente la chaîne JSON à convertir, $assoc représente s'il faut convertir l'objet JSON en tableau associatif (la valeur par défaut est false), $degree représente la profondeur de récursion maximale (par défaut est 512), $options Indique les options de conversion (la valeur par défaut est 0).

Ce qui suit est un exemple de conversion d'un tableau JSON en 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"));
        }
    }
}
?>

Le code ci-dessus convertit d'abord la chaîne JSON en un tableau PHP, puis utilise une fonction récursive pour convertir le tableau PHP au format XML.

Les données au format XML de sortie sont les suivantes :

<?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>

2. XML en JSON

Pour convertir le format XML au format JSON, vous devez d'abord convertir XML en tableau PHP, puis utiliser la fonction json_encode() pour convertir le format XML. Tableau PHP en chaîne de caractères JSON. Voici un exemple de conversion de XML en JSON :

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

Le code ci-dessus convertit d'abord la chaîne XML en un objet SimpleXMLElement via la fonction simplexml_load_string(), puis convertit l'objet SimpleXMLElement en un tableau PHP via la fonction récursive. Enfin, utilisez la fonction json_encode() pour convertir le tableau PHP en chaîne JSON.

Les données de sortie au format JSON sont les suivantes :

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

Résumé

PHP fournit des fonctions pratiques pour convertir le format JSON au format XML et le format XML au format JSON. Pendant le processus de développement, le choix du format de données approprié pour le stockage et l'échange en fonction des besoins réels peut obtenir de meilleurs effets de transmission et de lecture des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn