dojo的帮助文档(是越来越差了,不打算让人用了?)里并没有讲toJson究竟对哪些类型可用。做了一个小测试:
function f(a,b){ console.log(); } console.log("dojo.toJson(f) outputs:") console.log(dojo.toJson(f)); console.log("\ndojo.toJson(f.toString() outputs:"); console.log(dojo.toJson(f.toString())); console.log("\ndojo.toJson(date) outputs:"); console.log(dojo.toJson(new Date())); console.log("\ndojo.toJson(array) outputs:"); console.log(dojo.toJson([1,2,3])); console.log("\ndojo.toJson(object) outputs:"); console.log(dojo.toJson({key:value})); console.log("\ndojo.toJson(html markup) outputs:"); console.log(dojo.toJson(""));
输出结果是:
dojo.toJson(f) outputs: undefined dojo.toJson(f.toString() outputs: "function f(a,b) {\n console.log();\n}" dojo.toJson(date) outputs: "2012-02-17T13:19:50.895Z" dojo.toJson(array) outputs: [1,3] dojo.toJson(object) outputs: {} dojo.toJson(html markup) outputs: log: ""
这里的结果中,需要注意的是,对Date类型,有时候dojo.toJson会出错,从而使得返回为空集合{}。似乎在IE下更常见。看下面的例子:
var a = { lastTime : new Date() }; dojo.toJson(a);
在FF里和IE的控制台里,两者得到不同的结果,在IE下会是:
"{"lastTime":{}}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。