json vs xml对ajax请求有什么优缺点?性能有差异吗?即浏览器是否能够比另一种更快地处理一种格式?
总之,JSON(可以被认为是JavaScript的一个子集)比XML更精简.这有几个积极的副作用
JSON小于相应的XML
JSON更快,即更简单的语法->
更容易解析(更快的解析)
在我对这个问题的原始回答中,我对JSON的看法是JavaScript,我认为它是一个近亲.但是JSON是独立的,JSON.org在描述JSON 方面做得很好.它也提供了一个JavaScript的兼容性库,增加了支持JSON.parse
,并JSON.stringify
在浏览器不支持.
虽然eval
当时(2009年中)用于评估JavaScript,但它也可以评估JSON,即解析JSON,但它被认为是不安全的,因为它确实允许任意JavaScript执行.
JSON恰好非常适合浏览器,并且由于与JavaScript的密切关系,这是一种发展平台的自然方式.
虽然XML可能被认为具有更好的严谨性,因为你可以输入它,但也是那些使它慢得多的东西(在我看来它也有点冗长).但如果这是你真正想要的东西,你应该使用它,XML同样无处不在.
我不会就动态或静态类型进行辩论,但我会这样说.在无架构数据之上添加内容非常容易,并且有很多方法可以进行验证,无论是架构还是没有架构.
我在讨论中看不到XML的一个优点是XML可以有模式.这对描述XML的结构非常有用.对于简单的数据结构,JSON和一些描述你正在做的事情的文本很好.在处理更复杂的数据结构时,或者当数据的创建者和使用者不是同一个团队时,使用Schema可以帮助进行大量通信.
此外,拥有一个模式意味着您可以验证您的数据,这在尝试调试复杂错误时可以挽救生命......
您在本文" AJAX响应:XML,HTML或JSON? "中有关于该主题的完整辩论:
XML
优点
XML最重要的优点是它是其他人最容易阅读的格式.
第二个优点是XML已经存在了很长一段时间,许多开发人员已经习惯了它.
缺点
将数据插入HTML页面所需的JavaScript非常冗长.
JSON
优点
最重要的优点是,如果将JSON文件作为新标记导入,JSON将绕过JavaScript的同源策略.请参阅西蒙威利森关于血腥细节的例子.
JavaScript不允许您访问来自其他服务器的文档(无论是XML还是HTML).但是,如果您将JSON文件作为脚本标记导入,则可以避免此问题,并且可以将任何JSON数据导入任何网站.这取决于您的业务目标,无论这是好还是坏,但现在它是唯一允许不受限制访问的数据格式.
第二个优点是,与XML数据的脚本相比,JSON数据的脚本稍微简单一些,与JavaScript语言的其余部分略微一致.
缺点
JSON最重要的缺点是格式很难为人类阅读,当然,每个逗号,引号和括号都应该在正确的位置.虽然对于XML也是如此,JSON在复杂外观的语法中,比如数据片段末尾的}}]},可能会吓到新手并进行复杂的调试.
从评论中,JSON被认为比XML更快.
尚未提及的XML的一个优点是可以使用XSLT使用任意复杂的XPath表达式从XML文档中提取数据.我无法在JSON中看到这样做的方法.您如何在JSON文档中找到包含"货币"字段作为直接后代的所有对象,而不管对象在结构中的位置?在使用XSLT/XPath的XML中,这非常简单.
但是,在浏览器中执行此操作需要付出代价.您将遇到特定于浏览器的怪癖,它可能会更慢,占用更多内存.