关于json和xml的知识点总结
前置知识:
通过ajax进行数据交换只有两种方式
一种是json格式的字符串 一种是xml
而云日记项目后台的resultInfo是一个java对象 他不是json格式的字符串
所以就得转成json格式的字符串
从而引出json和xml的区别:
来比较下两者使用场景和区别。作为2个最常用在系统中数据传输的2个格式
1. 速度
JSON属于轻量级的, 传输速度来说,JSON会更快些,B/S的架构传输当中,用在系统的不同layer来做数据传输。
REST API里面可以用JSON Data,前端可以用JSON Data传到后端等等。
2. 可读性
JSON来源于JS, 如果来作为数据存储,它的可读性就没有XML那么好了,尤其是在数据模型非常复杂的情况下,多层数据元素非常多的时候。
XML可读性更好,因为它本来就出自于结构性的语言定义的。
2. 数据存储
有些时候,相比于存在数据库里,可能存在文件系统里会更好些。
如果你是需要存储轻量级的配置数据,那可能是JSON会更好些。
其他的大多数情况下,可能都会选择XML。比如之前我做过的E-learning的项目,根据SCORM标准,相关的学习步骤内容,
Topic,Step等等都是要存在XML之后在被加载到app里面的。
3. 严谨性
XML的数据严谨性会更好些。学过XML的同学都知道xml可以定义schema的,这些都是可以让你做无缝连接验证你的数据模型的最基础的东西了。
XML在parser的作用下,会更准确的找到你的XML数据合适哪个元素是否规范。
而JSON想做到这个,就需要写代码或者做其他configueration来做到了。
这种情况下,XML会经常被用于在后端作为几个系统之间的传输使用。
4. 应用场景
XML相对于JSON看起来可能更为复杂,但是就是因为它的严谨性,在你的data model非常复杂和需要一些native 验证的时候,XML可能就是更好的选择了。比如DTD validation。
XML作为文档数据存储和框架配置数据存储也是最长重要的应用之一。广泛的应用在框架配置数据里面,比如Spring的ac.xml
Mybatis的mapper.xml
Hibernate的hibernate.cfg.xml
Maven的pom.xml
XML还有个很好功能,就是namespace,这是JSON没有的
JSON显然在REST API Data传输里面应用的最多了,或者非常简单的配置数据在不同的layer中间传输的。