XML、JSON、ProtocolBuffer、Lua特点比较

 XMLJSONPBLua
数据结构支持复杂结构简单结构较复杂结构复杂结构
数据保存方式文本文本二进制文本
数据保存大小一般一般
解析效率一般稍快
语言支持程度非常多C++/Java/Python
开发难度|繁琐繁琐简单简单相对繁琐
学习成本
适用范围数据交换数据交换数据交换数据保存及脚本处理

备注:

对于大型应用,还是推荐使用xml做数据交换,毕竟xml的数据是结构化的。这不仅使用户可以指定一个定义了文档中的元素的词汇表,而且还可以指定元素之间的关系。当然json的数据也是这种格式,但是在大型应用的数据存储上,它的存储效率就显得力不从心了。

但是对于一个小型一点的应用程序,如果是web程序的话,那选择json则是一个不错的选择,因为使用它你就不必为那些烦人的方法和属性而担忧了,因为您操作json就相当于在操作一个不定维的数组。语言怎么操作数组的就可以怎么操作它,而且大多数语言已经开始为它封装了一些好的函数和类,从而你只用调用库方法就可以轻松的实现数据间的转换。

做了一个SMS系统,发现:json原来如此.