Maison  >  Article  >  interface Web  >  Comment convertir XML et JSON entre JS

Comment convertir XML et JSON entre JS

php中世界最好的语言
php中世界最好的语言original
2018-04-25 09:40:112609parcourir

Cette fois, je vais vous présenter la méthode de conversion de XML et JSON avec JS. Quelles sont les précautions pour convertir XML et JSON avec JS. Ce qui suit est un cas pratique, jetons un coup d'oeil.

Pendant le développement, XML et JSON sont parfois convertis l'un en l'autre, et ils doivent être utilisés dans JS. J'ai beaucoup cherché sur Internet, mais tous ceux qui étaient utiles manquaient de bras ou de jambes, ou de mots. Je n'ai pas exprimé le sens. C'était trop inutile, pour l'amour de Dieu, j'ai décidé de le réaliser moi-même.

Comparaison des différences entre JSON et XML

1.Introduction à la définition

(1).XML. définition

Extensible Markup Language (XML), un langage de balisage utilisé pour marquer les documents électroniques afin de les rendre structurels. Il peut être utilisé pour marquer des données et définir des types de données. Un langage source qui permet aux utilisateurs de définir leur propre langage de balisage. XML utilise la définition du type de document DTD (document type definition) pour organiser les données ; le format est unifié, multiplateforme et multilingue, et est depuis longtemps devenu une norme reconnue dans l'industrie.
XML est un sous-ensemble du langage SGML (Standard Generalized Markup Language) et convient parfaitement à la transmission sur le Web. XML fournit une méthode unifiée pour décrire et échanger des données structurées indépendamment des applications ou des fournisseurs.

(2).Définition JSON

JSON (JavaScript Object Notation) est un format d'échange de données léger avec une bonne fiabilité Fonctionnalités de lecture et d'écriture rapide . L'échange de données entre différentes plateformes est possible. JSON adopte un format de texte hautement compatible et totalement indépendant du langage, et présente également un comportement système similaire aux habitudes du langage C (notamment C, C++, C#, Java, JavaScript, Perl, Python, etc.). Ces propriétés font de JSON un langage d'échange de données idéal.
JSON est basé sur le langage de programmation JavaScript, un sous-ensemble de la norme ECMA-262 3e édition - décembre 1999.

2. Avantages et inconvénients de XML et JSON

(1) Avantages et inconvénients de XML

acc80a873886d8118be81a328be9ec64. Avantages du XML
A. Le format est unifié et conforme aux normes
B. Il est facile d'interagir à distance avec d'autres systèmes et le partage de données est plus pratique ;

2cc198a1d5eb0d3eb508d858c9f5cbdb. Inconvénients du XML
A. Les fichiers XML sont énormes, le format de fichier est complexe et la transmission consomme de la bande passante
B. Le serveur et le client doivent dépenser ; beaucoup de code pour analyser XML, En conséquence, les codes côté serveur et côté client deviennent extrêmement complexes et difficiles à maintenir
C. La manière d'analyser XML entre les différents navigateurs sur le client est incohérente, et un beaucoup de code doit être écrit à plusieurs reprises ;
D. L'analyse XML côté serveur et côté client consomme plus de ressources et de temps.

(2). Avantages et inconvénients de JSON

f35d6e602fd7d0f0edfa6f7d103c1b57. Avantages de JSON :
A. Le format des données est relativement simple, facile à utiliser. lire et écrire, formater Ils sont tous compressés et consomment peu de bande passante ;

B. Facile à analyser, JavaScript côté client peut simplement lire les données JSON via eval(); plusieurs langages, dont ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby et d'autres langages côté serveur pour faciliter l'analyse côté serveur

 D. Dans le monde PHP ; , il existe déjà PHP-JSON et JSON- PHP est apparu, et il est préférable que les programmes sérialisés PHP soient appelés directement. Les objets, tableaux, etc. côté serveur PHP peuvent générer directement le format JSON, ce qui est pratique pour l'accès et l'extraction client. ;

E. Parce que le format JSON peut être directement utilisé par le côté serveur L'utilisation du code simplifie grandement la quantité de développement de code côté serveur et côté client, et les tâches restent inchangées et sont faciles à maintenir.

2cc198a1d5eb0d3eb508d858c9f5cbdb. Inconvénients de JSON

A. Il n'est pas aussi populaire et largement utilisé que le format XML, et il n'est pas aussi polyvalent que XML

B ; .JSON La promotion du format dans les Web Services en est encore à ses balbutiements.

Convertir XML en JSON en Javascript

Regardez d'abord l'exemple d'appel :

<viewport id="menuPane" layout="border">
    <panel region="center" border="0" layout="border">
        <tbar>
            <toolbar text="XXXX">
                <menu>
                    <text text="11">
                    </text>
                    <text text="22">
                    </text>
                    <text text="33">
                    </text>
                </menu>
            </toolbar>
            <toolbar text="XXXX">
                <menu>
                    <text text="44">
                    </text>
                    <text text="55">
                    </text>
                    <menu>
                        <text text="6 6">
                        </text>
                    </menu>
                    <text text="77">
                    </text>
                </menu>
            </toolbar>
        </tbar>
    </panel>
</viewport>
var xmlParser = new XmlToJson();
var json = xmlParser.parse(xml);
console.log( JSON.stringify(json) );
var jsonParser = new JsonToXml();
var xml = jsonParser.parse(json);
console.log( xml );
Convertir XML en JSON :

function XmlToJson() {
}
XmlToJson.prototype.setXml = function(xml) {
    if(xml && typeof xml == "string") {
        this.xml = document.createElement("p");
        this.xml.innerHTML = xml;
        this.xml = this.xml.
getElementsByTagName
("*")[0];
    }
    else if(typeof xml == "object"){
        this.xml = xml;
    }
};
XmlToJson.prototype.getXml = function() {
    return this.xml;
};
XmlToJson.prototype.parse = function(xml) {
    this.setXml(xml);
    return this.convert(this.xml);
};
XmlToJson.prototype.convert = function(xml) {
    if (xml.nodeType != 1) {
        return null;
    }
    var obj = {};
    obj.xtype = xml.nodeName.toLowerCase();
    var nodeValue = (xml.textContent || "").replace(/(\r|\n)/g, "").replace(/^\s+|\s+$/g, "");
    
    if(nodeValue && xml.childNodes.length == 1) {
        obj.text = nodeValue;
    }
    if (xml.attributes.length > 0) {
        for (var j = 0; j < xml.attributes.length; j++) {
            var attribute = xml.attributes.item(j);
            obj[attribute.nodeName] = attribute.nodeValue;
        }
    }
    if (xml.childNodes.length > 0) {
        var items = [];
        for(var i = 0; i < xml.childNodes.length; i++) {
            var node = xml.childNodes.item(i);
            var item = this.convert(node);
            if(item) {
                items.push(item);
            }
        }
        if(items.length > 0) {
            obj.items = items;
        }
    }
    return obj;
};
Convertir JSON en XML :

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez faire attention au site Web chinois php Autres articles connexes !
function JsonToXml() {
 this.result = [];
}
JsonToXml.prototype.spacialChars = ["&","<",">","\"","&#39;"];
JsonToXml.prototype.validChars = ["&","<",">",""","&#39;"];
JsonToXml.prototype.toString = function(){
 return this.result.join("");
};
JsonToXml.prototype.replaceSpecialChar = function(s){
    for(var i=0;i<this.spacialChars.length;i++){
        s=s.replace(new RegExp(this.spacialChars[i],"g"),this.validChars[i]);
    }
    return s;
};
JsonToXml.prototype.appendText = function(s){
    s = this.replaceSpecialChar(s);
    this.result.push(s);
};
JsonToXml.prototype.appendAttr = function(key, value){
    this.result.push(" "+ key +"=\""+ value +"\"");
};
JsonToXml.prototype.appendFlagBeginS = function(s){
 this.result.push("<"+s);
};
JsonToXml.prototype.appendFlagBeginE = function(){
 this.result.push(">");
};
JsonToXml.prototype.appendFlagEnd = function(s){
 this.result.push("</"+s+">");
};
JsonToXml.prototype.parse = function(json){
 this.convert(json);
 return this.toString();
};
JsonToXml.prototype.convert = function(obj) {
 var nodeName = obj.xtype || "item";
 this.appendFlagBeginS(nodeName);
 var arrayMap = {};
 for(var key in obj) {
  var item = obj[key];
  if(key == "xtype") {
   continue;
  }
  if(item.constructor == String) {
   this.appendAttr(key, item);
  }
  if(item.constructor == Array) {
   arrayMap[key] = item;
  }
 }
 this.appendFlagBeginE();
 for(var key in arrayMap) {
  var items = arrayMap[key];
  for(var i=0;i<items.length;i++) {
   this.convert(items[i]);
  }
 }
 this.appendFlagEnd(nodeName);
};

Lecture recommandée :

Quelles sont les méthodes d'analyse de Json


Quelles sont les méthodes permettant à JS de juger json

🎜>

Explication détaillée des principes JSONP et analyse de cas

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