将XML转换为JSON(并返回)使用Javascript
你将如何从XML转换到JSON,然后回到XML?
以下工具工作得很好,但不完全一致:
- xml2json
- json2xml
有没有人遇到过这种情况?
我认为这是最好的: 在XML和JSON之间转换
请务必阅读xml.com O'Reilly网站上的随附文章 ,其中详细介绍了这些转换的问题,我认为您会发现它们很有启发性。 O'Reilly主持这篇文章的事实应该表明,Stefan的解决scheme有其优点。
https://github.com/abdmob/x2js – 我自己的图书馆(来自http://code.google.com/p/x2js/的更新url):;
这个库提供XML到JSON(JavaScript对象),反之亦然JavaScript转换function。 该库非常小,不需要任何其他库。
API函数
- 新的X2JS() – 创build你的实例来访问所有的库function。 你也可以在这里指定可选的configuration选项
- X2JS.xml2json – 将指定为DOM对象的XML转换为JSON
- X2JS.json2xml – 将JSON转换为XML DOM对象
- X2JS.xml_str2json – 将指定为string的XML转换为JSON
- X2JS.json2xml_str – 将JSON转换为XMLstring
在线演示http://jsfiddle.net/abdmob/gkxucxrj/1/
var x2js = new X2JS(); function convertXml2JSon() { $("#jsonArea").val(JSON.stringify(x2js.xml_str2json($("#xmlArea").val()))); } function convertJSon2XML() { $("#xmlArea").val(x2js.json2xml_str($.parseJSON($("#jsonArea").val()))); } convertXml2JSon(); convertJSon2XML(); $("#convertToJsonBtn").click(convertXml2JSon); $("#convertToXmlBtn").click(convertJSon2XML);
这些答案帮助我做了很多工作:
function xml2json(xml) { try { var obj = {}; if (xml.children.length > 0) { for (var i = 0; i < xml.children.length; i++) { var item = xml.children.item(i); var nodeName = item.nodeName; if (typeof (obj[nodeName]) == "undefined") { obj[nodeName] = xml2json(item); } else { if (typeof (obj[nodeName].push) == "undefined") { var old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(xml2json(item)); } } } else { obj = xml.textContent; } return obj; } catch (e) { console.log(e.message); } }
只要你通过一个jQuery的DOM / XML对象:对我来说是这样的:
Jquery(this).find('content').eq(0)[0]
其中内容是我存储我的XML的领域。
我个人会推荐这个工具 。 这是一个XML到JSON转换器。
这是非常轻量级的,在纯粹的JavaScript。 它不需要依赖关系。 您可以简单地将函数添加到您的代码中,并根据需要使用它。
它也考虑到XML属性。
var xml = '<person id=”1234” age=”30”><name>John Doe</name></person>'; var json = xml2json(xml); console.log(json); // prints '{“person”: {“id”: “1234”, “age”: “30”, “name”: “John Doe”}}'
这是一个在线演示 !
有一段时间,我为我的电视Watchlist应用程序写了这个工具https://bitbucket.org/surenrao/xml2json ,希望这也有帮助。
Synopsys:一个库不仅可以将xml转换为json,而且还可以很容易地进行debugging(无循环错误)并将json重新创build回xml。 特点: – parsingXML到JSON对象。 将json对象打印回xml。 可用于将IndexedDB中的xml保存为X2J对象。 打印json对象。
使用服务器端作为客户端的最好方法在所有情况下都不能正常工作。 我试图build立在线JSON到XML和XML使用JavaScript的JSON转换器,我觉得几乎是不可能的,因为它不是在所有情况下工作。 最终我在ASP.MVC中使用Newtonsoft做了服务器端。 这里是在线转换器http://techfunda.com/Tools/XmlToJson