Se si lavora in Javascript, è molto più facile per noi JSON. Questo perché JSON può essere valutato direttamente in un oggetto Javascript, che è molto più facile da gestire rispetto al DOM.
di assunzione e leggermente alterando il codice XML e JSON dall'alto
XML:
<person>
<name>John Doe</name>
<tag>friend</tag>
<tag>male</tag>
</person>
JSON:
{ person: {"name": "John Doe", "tag": ["friend", "male"]} }
Se si voleva ottenere il secondo oggetto tag con XML, avresti bisogno di utilizzare le potenti ma verbose API DOM:
var tag2=xmlObj.getElementsByTagName("person")[0].getElementsByTagName("tag")[1];
considerando che con un oggetto JavaScript che è venuto in via JSON, si può semplicemente utilizzare:
var tag2=jsonObj.person.tag[1];
Naturalmente, Jquery fa l'esempio DOM molto più semplice:
var tag2=$("person tag",xmlObj).get(1);
Tuttavia, JSON solo "si adatta" in un mondo Javascript. Se lavori per un po ', scoprirai di avere un sovraccarico mentale molto inferiore rispetto al coinvolgimento di dati basati su XML.
Tutti gli esempi precedenti ignorano la possibilità che uno o più nodi siano disponibili, duplicati o che il nodo abbia solo uno o nessun figlio. Tuttavia, per illustrare il nativo-ness di JSON, per fare questo con l'jsonObj, che ci resta che:
var tag2=(jsonObj.person && jsonObj.person.tags && jsonObj.person.tags.sort && jsonObj.person.tags.length==2 ? jsonObj.person.tags[1] : null);
(alcune persone potrebbero non piace che a lungo di ternaria, ma funziona). Ma XML sarebbe (a mio avviso) più cattivo (non credo che tu voglia seguire l'approccio ternario perché continueresti a chiamare i metodi dom che potrebbero dover ripetere il lavoro a seconda dell'implementazione):
var tag2=null;
var persons=xmlObj.getElementsByTagName("person");
if(persons.length==1) {
var tags=persons[0].getElementsByTagName("tag");
if(tags.length==2) { tag2=tags[1]; }
}
Jquery (non testata):
var tag2=$("person:only-child tag:nth-child(1)",xmlObj).get(0);
ho sentito che stavano per rinominare XML per OEML (Over Engineered Markup Language) –
come si comporta JSON diverse codifiche dei caratteri (come XML fa). Esiste una codifica di caratteri implicita in una rappresentazione JSON? –
Consentire ai dati di essere recuperati da un altro dominio non è una caratteristica intrinseca ai formati XML o JSON * *. È una cosa relativa al browser. –