跨平台数据传递方法
一.二进制
无法直接阅读,需在二进制层面编码解码; 格式由厂商定义,特定应用需要表示的对象很复杂时,格式也非常复杂,例如office文件格式; 通常需要充分考虑协议的扩展性、兼容性,例如windows的文件格式,
DOS header、COFF header、PE、CLR header等;相对于文本形式,体积小,编码、解码可以更高效;
二.XML
文本协议,可以阅读;严格的格式要求;运用广泛,相关技术比较丰富,例如DTD、XPath、XLink、XPoint、XSLT等;
<site> <name>sina</name> <url>http://www.sina.com.cn</url> </site> <site> <name>google</name> <url>http://www.google.com</url> </site>
三.JSON
文本协议,易于阅读; 相比于XML,语法更简单,体积更小,有javascript语言的标准支持。缺少引用概念(XLink、XPoint),缺少路径概念(XPath); XML用于更通用的目的,JSON更适合于数据交互的环境(尤其是web环境);
JSON基于 javascript语言ECMA 262 3rd Edition,现在趋向于成为一种跨语言的数据交互格式 完整的格式最初由RFC4627定义,直观的 syntax diagram以及各语言的支持类库参考json.org
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
四. YAML
文本协议,易于阅读;YAML的语法比JSON复杂,JSON可以看作YAML的一个子集。也正因为语法规范较复杂,不同的YAML库对某些特征的处理也可能不一样。
YAML与XML的比较:
a.YAML的可读性好。
b.YAML和脚本语言的交互性好。
c.YAML使用实现语言的数据类型。
d.YAML有一个一致的信息模型。
e.YAML易于实现。
上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:
a.YAML可以基于流来处理;
b.YAML表达能力强,扩展性好。
教程:http://www.cnblogs.com/wengjinbao/articles/652031.html
name: John Smith age: 37 spouse: name: Jane Smith age: 25 children: - name: Jimmy Smith age: 15 - name: Jenny Smith age 12