English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dieses Code löst diese beiden Probleme:
1.Da js-Objekte das Konzept der Klassennamen nicht haben, müssen sie beim Konvertieren manuell den Knotenname der obersten Ebene angeben
2.Falls die Elemente im Array Objekte sind, müssen sie diesen Knotenname für das Array-Element konfigurieren
var XmlHelper = function() { var _arrayTypes = {} var _self = this; /* *Konvertiert das Objekt in XML *@obj Zielobjekt *@rootname Knotenname *@arraytypes konfiguriert den Knotenname der Elemente eines Array-Subelements */ this.parseToXML = function(obj, rootname, arraytypes) { if(arraytypes){ _arrayTypes=arraytypes; } var xml=""; if(typeof obj!=="undefined"){ if(Array.isArray(obj)){ xml+}=parseArrayToXML(obj,rootname); } xml+=parseObjectToXML(obj,rootname); } xml+=parseGeneralTypeToXML(obj,rootname); } } return xml; } var parseObjectToXML=function(obj,rootname){ if(typeof rootname==="undefined"||!isNaN(Number(rootname))){ rootname="Object"; } var xml="<"+rootname+">"; if(obj){ for(var field in obj){ var value=obj[field]; if(typeof value!=="undefined"){ if(Array.isArray(value)){ xml+=parseArrayToXML(value,field); } xml+=_self.parseToXML(value,field); } xml+=parseGeneralTypeToXML(value,field); } } } } xml+="</"+rootname+">"; return xml; } var parseArrayToXML=function(array,rootname){ if(typeof rootname==="undefined"||!isNaN(Number(rootname))){ rootname="Array"; } var xml="<"+rootname+">"; if(array){ var itemrootname=_arrayTypes[rootname]; array.forEach(function(item){ xml+=_self.parseToXML(item,itemrootname); }); } xml+="</"+rootname+">"; return xml; } var parseGeneralTypeToXML=function(value,rootname){ if(typeof rootname==="undefined"||!isNaN(Number(rootname))){ rootname=typeof value; } var xml="<"+rootname+">"+value+"</"+rootname+">"; return xml; } } //===========Test========= var xmlhelper=new XmlHelper(); //Beispiel1 var testobj={ field1:"1", field2:true, field3[{a:1},{a:2}] } console.log(xmlhelper.parseToXML(testobj,"testobj",{field3:"ArrayItem"}); //Ausgabe:<testobj><field1>1</field1><field2>true</field2><field3><ArrayItem><a>1</a></ArrayItem><ArrayItem><a>2</a></ArrayItem></field3></testobj> console.log("================================================"); //Beispiel2 var testobj2=[1,2,3]); console.log(xmlhelper.parseToXML(testobj2,"testobj2")); //Ausgabe:<testobj2><number>1</number><number>2</number><number>3</number></testobj2>
Dieser Umwandlungscode hat Einschränkungen
Der Name eines Feldes, das einen Array-Wert hat, sollte besser nicht gleich sein
Das ist der gesamte Inhalt dieses Artikels. Wir hoffen, dass der Inhalt Ihnen bei Ihrem Lernen oder Ihrer Arbeit hilft und gleichzeitig auch die Unterstützung für das Rufen-Lehrbuch!
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet bezogen und gehört dem jeweiligen Urheberrechtsinhaber. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie verdächtige Urheberrechtsinhalte entdecken, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3codebox.com (Bitte ersetzen Sie # durch @ beim Senden einer E-Mail zur Meldung von Verstößen und stellen Sie relevante Beweise zur Verfügung. Bei nachgewiesener Täuschung wird diese Website den涉嫌侵权的内Inhalte sofort löschen.