跨平台数据传递方法

一.二进制 

        无法直接阅读,需在二进制层面编码解码;  格式由厂商定义,特定应用需要表示的对象很复杂时,格式也非常复杂,例如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

文章来源:http://wenku.baidu.com/link?url=en4lBrFK0UxnuzDowWRY0qX-GZrjwGRO0Kd2LslkOqVqlqj9TMOdlawT_DHG9v4LYJ6vRv4316czPIxA6DdfDJlri1EfVR-IoFLXp_t9HNC

猜你喜欢

转载自bijian1013.iteye.com/blog/2232328