XML | JSON | PB | Lua | |
数据结构支持 | 复杂结构 | 简单结构 | 较复杂结构 | 复杂结构 |
数据保存方式 | 文本 | 文本 | 二进制 | 文本 |
数据保存大小 | 大 | 一般 | 小 | 一般 |
解析效率 | 慢 | 一般 | 快 | 稍快 |
语言支持程度 | 非常多 | 多 | C++/Java/Python | 多 |
开发难度|繁琐 | 繁琐 | 简单 | 简单 | 相对繁琐 |
学习成本 | 低 | 低 | 低 | 高 |
适用范围 | 数据交换 | 数据交换 | 数据交换 | 数据保存及脚本处理 |
备注:
对于大型应用,还是推荐使用xml做数据交换,毕竟xml的数据是结构化的。这不仅使用户可以指定一个定义了文档中的元素的词汇表,而且还可以指定元素之间的关系。当然json的数据也是这种格式,但是在大型应用的数据存储上,它的存储效率就显得力不从心了。
但是对于一个小型一点的应用程序,如果是web程序的话,那选择json则是一个不错的选择,因为使用它你就不必为那些烦人的方法和属性而担忧了,因为您操作json就相当于在操作一个不定维的数组。语言怎么操作数组的就可以怎么操作它,而且大多数语言已经开始为它封装了一些好的函数和类,从而你只用调用库方法就可以轻松的实现数据间的转换。
做了一个SMS系统,发现:json原来如此.