jQuery XML to JSON Plugin

jQuery XML to JSON Plugin插件是通过用js代码实现将xml文件转换为json格式的数据,方便读取,特别是用ajax读取xml后,对返回的接送格式进行操作非常方便。

例如:

<xml> 
<site>javachen.com</site> 
</xml>
通过jQuery XML to JSON Plugin可以将上面的xml转换为一下json格式:
{ 
   site: 'javachen.com'; 
}

插件使用方法:

var xml = '<xml><site>javachen.com</site></xml>'; 
var json = $.xml2json(xml); 
alert(json.site);$.get('data/hello.xml', function(xml){
var json = $.xml2json(xml); 
alert(json.site); 
});

插件下载地址:

jQuery XML to JSON Plugin

插件作者:

http://www.fyneworks.com/

使用该插件最主要的是$.xml2json方法,该方法有两个参数:(xmlfile,boolean),第二个参数可有可无,但有和无时候的含义不同用法也不同。

无第二个参数时候,例子如下:

下面xml文件地址为:(data/animals.xml)

<?xml version="1.0" encoding="utf-8"?> 
<animals> 
<dog color='Black'> 
<name>Rufus</name> 
<breed>labrador</breed> 
</dog> 
<dog breed='whippet'> 
Adopted 
<name>Marty</name> 
</dog> 
<cat color="White"> 
<name>Matilda</name> 
</cat> 
</animals>

读取xml文件方法:

$.get('data/animals.xml', function(xml){ 
var animals = $.xml2json(xml); 
alert(animals.dog[1].name +'/'+ animals.dog[1]); 
});

In simple mode, the plugin will only use arrays and objects when necessary. It also means you don’t have to use .text (or .nodeValue) to retrieve the text of each node.

Resulting JSON object:

{ 
dog:[ 
{ name:'Rufus', breed:'labrador', color:'Black' }, 
{ text:'Adopted', name:'Marty', breed:'whippet' } 
], 
cat:{ name:'Matilda', color:'White'} 
}

Accessing the data

animals.dog === '{Array}'; 
animals.dog[0] === '{Object}'; // No text in node 
animals.dog[0].name === 'Rufus'; 
animals.dog[0].color === 'Black';// from attribute 
animals.dog[0].breed === 'labrador'; 
animals.dog[1] === 'Adopted'; // text in node (animals.dog[1].text) 
animals.dog[1].name === 'Marty'; 
animals.dog[1].breed === 'whippet'; 
animals.cat === '{Object}'; // only 1 cat, array not required 
animals.cat.name === 'Matilda'; 
animals.cat.color === 'White';

在这种情况下,该插件将xml按照父子节点,将其解析问包含数组和对象的json对象,数组里又包含有对象!

有第二个参数的情况:

$.get('data/animals.xml', function(xml){ 
var animals = $.xml2json(xml, true); 
alert(animals.dog[1].name[0].text +'/'+ animals.dog[1].text); 
});

In extended mode, the plugin converts each and every node into an array.

在这种情况下,该插件将每一个几点转换为个数组!

如下:

Resulting JSON object

{ 
dog:[ 
{ name:['Rufus'], breed:['labrador'], color:'Black' }, 
{ text:'Adopted', name:['Marty'], breed:'whippet' } 
], 
cat:[ 
{ name:'Matilda', color:'White'} 
] 
}

Accessing the data:

animals.dog === '{Array}'; 
animals.dog[0] === '{Object}'; // No text in node 
animals.dog[0].name[0].text === 'Rufus'; 
animals.dog[0].color[0].text === 'Black';// from attribute 
animals.dog[0].breed[0].text === 'labrador'; 
animals.dog[1] === '{Object}'; // node text stored in '.text' 
animals.dog[1].text === 'Adopted'; // not available in animals.dog[1] 
animals.dog[1].name[0].text === 'Marty'; 
animals.dog[1].breed[0].text === 'whippet'; 
animals.cat === '{Array}'; 
animals.cat[0] === '{Object}'; 
animals.cat[0].name[0].text === 'Matilda'; 
animals.cat[0].color[0].text === 'White';