使用的toJSON(),你可以使用它来JSON转换为XML,从goessner.net(source file)后:
/* This work is licensed under Creative Commons GNU LGPL License.
License: http://creativecommons.org/licenses/LGPL/2.1/
Version: 0.9
Author: Stefan Goessner/2006
Web: http://goessner.net/
*/
function json2xml(o, tab) {
var toXml = function(v, name, ind) {
var xml = "";
if (v instanceof Array) {
for (var i=0, n=v.length; i<n; i++)
xml += ind + toXml(v[i], name, ind+"\t") + "\n";
}
else if (typeof(v) == "object") {
var hasChild = false;
xml += ind + "<" + name;
for (var m in v) {
if (m.charAt(0) == "@")
xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\"";
else
hasChild = true;
}
xml += hasChild ? ">" : "/>";
if (hasChild) {
for (var m in v) {
if (m == "#text")
xml += v[m];
else if (m == "#cdata")
xml += "<![CDATA[" + v[m] + "]]>";
else if (m.charAt(0) != "@")
xml += toXml(v[m], m, ind+"\t");
}
xml += (xml.charAt(xml.length-1)=="\n"?ind:"") + "</" + name + ">";
}
}
else {
xml += ind + "<" + name + ">" + v.toString() + "</" + name + ">";
}
return xml;
}, xml="";
for (var m in o)
xml += toXml(o[m], m, "");
return tab ? xml.replace(/\t/g, tab) : xml.replace(/\t|\n/g, "");
}
这就是说,我会亲自去JSON。
这看起来有点...繁琐。首先转换为JSON,然后转换为XML ...我喜欢JSON的简单性,我宁愿去JSON,就像你说的那样。在0..10的等级上,情况在PHP方面会有多复杂?如果我通过它JSON,我可以像使用simplexml解析XML一样轻松地将JSON化对象转换为PHP对象吗? – 2009-04-19 16:53:49
是的,它非常笨重。但它(应该)工作。另外,我刚刚发现可能感兴趣的http://us.php.net/json_decode。 – nsdel 2009-04-19 17:00:09