Maison  >  Article  >  interface Web  >  Explication détaillée de l'opération JS de conversion d'un objet XML en objet Json

Explication détaillée de l'opération JS de conversion d'un objet XML en objet Json

迷茫
迷茫original
2017-03-26 15:04:581498parcourir

Récemment, alors que j'avais affaire à une fonction front-end, j'ai rencontré un problème. Le système d'origine utilisait du XML pour stocker les données, mais sur le nouveau système, je voulais les convertir en stockage objet json, j'ai donc envisagé directement en le convertissant en stockage d'objets json. L'objet XML est converti en objet json.

Jusqu'à présent, je n'ai pas trouvé de méthode de conversion universelle. Je ne peux utiliser qu'une boucle for pour attribuer en continu des valeurs basées sur la structure d'objet XML connue.

var xml = ······;//获取xml对象
var objList = [];
for(var i = 0;i<xml.childNodes.length;i++){
    var obj = {};
    obj.attribute1 = xml.getAttribute("attribute1");//获取节点属性
    obj.attribute2 = xml.getAttribute("attribute2");
    obj.children = [];
    for(var x=0;x<xml.childNodes[i].childNodes.length;x++){
        var element = xml.childNodes[i].childNodes[x];
        var child = {};
        child.attribute1 = element.getAttribute("attribute1");
        child.attribute2 = element.getAttribute("attribute2");
        obj.children.push(child);
    }
    objList.push(obj);          
}

La boucle for peut continuer à être imbriquée et les attributs de chaque nouvel objet json peuvent être personnalisés, mais vous devez remplir les attributs existants dont vous avez besoin dans la méthode getAttribute().

Cette méthode semble stupide, donc je vais l'utiliser comme ça pour le moment, et j'envisagerai de la remplacer lorsque je penserai à une meilleure méthode.

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