zoukankan      html  css  js  c++  java
  • 几种数据交换格式

     主要包括以下三种:

    · XML

    · JSON

    · YAML

     

    XML

        XML是当前编程中最为流行的数据交换格式,拥有跨平台、跨语言的优势。对于XML应该很熟悉,所以不再多做介绍。

     

    JSON

    什么是JSON

    · JSON(JavaScript Object Notation) 是一种轻量级数据交换格式

    · 基于JavaScript的一个子集

     

    JSON的有优点?

    · 易于人阅读和编写。同时也易于机器解析和生成

    · XMLHTML片段相比,JSON提供了更好的简单性和灵活性Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml

    · 非常适合于服务器与JavaScript 的交互

     

    JSON数据的数据格式

    JSON数据格式非常简单,简单来说,只有四点:

    1)并列数据之间用逗号(,)分隔;

    2)映射用冒号(:)表示;

    3)并列数据集合用方括号([])表示;

    4)映射集合用大括号({})表示。

    上面4条规则就是JSON的所有内容。

     

    JSON的数据表示

    XML一样,JSON也是基于纯文本的数据格式。由于JSON天生是为JavaScript准备的,因此,JSON的数据格式非常简单,您可以用 JSON传输一个简单的StringNumberBoolean,也可以传输一个数组,或者一个复杂的Object 对象。

    1)字符串格式:和大多数编程语言一样,引号之内就可以定义字符串;

        当前比较流行的几种数据交换格式 - CH - 已经开始…

    2)数字格式:

      当前比较流行的几种数据交换格式 - CH - 已经开始… 

    3)Boolean数据类型;表示为truefalse

      当前比较流行的几种数据交换格式 - CH - 已经开始… 

    4)Object对象:JSON中使用{}包含一系列无序的key-value键值对表示Object对象;

      当前比较流行的几种数据交换格式 - CH - 已经开始…

     

    JSON数据处理原理

    JSON的数据处理原理的步骤如下:

    1)客户端发送数据到服务器端,服务器端响应用户请求返回数据,此时可以将服务器端的数据封装成为JSON传送到Web页面;在Java开发服务器端通常用以下几个方法将后台得到的数据封装成为JSON数据,如下:

    /**

     * 将字符串类型的数据转换为JSON格式的数据输出

     */

    public void outJsonString(String str) {

    getResponse().setContentType("text/javascript;charset=UTF-8");

    outString(str);

    }

    /**

     * 将Object类型的数据类型转换为JSON格式数据输出

     */

    public void outJson(Object obj)

    {

    outJsonString(JSONObject.fromObject(obj).toString());

    }

    /**

     * 将Object类型的对象转化为JSON数组的格式输出

     */

    public void outJsonArray(Object array)

    {

    outJsonArray(JSONArray.fromObject(array).toString());

    }

    2)服务器把封装好的JSON数据发送到客户端页面,该数据是一段JSON格式的数据,如下:

        当前比较流行的几种数据交换格式 - CH - 已经开始…

    如果想在页面中看到服务器端返回的JSON数据,利用以下的Javascript代码可以将数据显示到客户端页面:

    当前比较流行的几种数据交换格式 - CH - 已经开始…

     

    实际上Javascript是将服务器端返回的JSON数据赋值给一个JS变量,将JS变量输出即可在页面中显示服务器端返回的数据。

     

    YAML

    什么是YAML?

    ·YAML是一种直观的能够被电脑识别的的数据数据序列化格式

    · 换种说法,YAML是一种很简单的类似于XML的数据描述语言,语法比XML简单很多。

       YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。YAML不是XML

     

    YAML的优点?

    · 可读性好;

    · 和其它脚本语言的交互性好;

    · 使用实现语言的数据类型;

    · 提供了一个一致的信息模型;

    · 可以基于流来处理;

    · 表达能力强,扩展性好;

    · 易于实现;

     

    YAML语法?

    在YAML里面,

    · 结构通过缩进来表示

    · 连续的项目通过减号"-"来表示

    · map结构里面的key/value对用冒号":"来分隔。

    · YAML也有用来描述好几行相同结构的数据的缩写语法,数组用'[]'包括起来,hash用'{}'来包括。

    例如:
      name: John Smith

    age: 37

    wife:

        name: Jane Smith

        age: 25

    children:

        -   name: Jimmy Smith

            age: 15

        -   name: Jenny Smith

            age 12

    通过以上代码我们可以很容易了解一个人的基本信息,由此可见YAML的可读性确实不错。

     

    YAML的适用范围?

    · 由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。

    · YAML比较适合做序列化。因为它是宿主语言数据类型直转的。

    · YAML做配置文件也不错。比如Ruby on Rails的配置就选用的YAML。

    YAML的问题?

    由于兼容性问题,不同语言间的数据流转建议现在不要用YAML如兼容性没问题的话,YAML就太完美了。轻巧,敏捷,高效,简便,通用。这才是理想中的数据模型。

    当然就现在而言,这还只是个理想。

  • 相关阅读:
    详解mysql int类型的长度值问题
    linux的作业控制(job control)
    Linux环境变量的设置和查看方法
    gearman入门初步
    VIM 乱码终极解决
    android系统通过图片绝对路径获取URI的三种方法
    Buck电路调试
    第二次画板
    1 第一次画PCB总结
    一起学习模拟电路之1
  • 原文地址:https://www.cnblogs.com/baiduligang/p/4247183.html
Copyright © 2011-2022 走看看