主要包括以下三种:
·XML
·JSON
·YAML
XML
XML是当前编程中最为流行的数据交换格式,拥有跨平台、跨语言的优势。对于XML应该很熟悉,所以不再多做介绍。
JSON
什么是JSON?
·JSON(JavaS<wbr>criptObjectNotation)是一种<span style="color:rgb(0,128,0)">轻量级</span>的<span style="color:rgb(0,128,0)">数据交换格式</span><span style="color:rgb(0,128,0)">;</span></wbr>
·它是基于JavaS<wbr>cript的一个子集;</wbr>
JSON的有优点?
·易于人阅读和编写。同时也易于机器解析和生成;
·同XML或HTML片段相比,JSON提供了更好的简单性和灵活性;在Javas<wbr>cript</wbr>地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml;
·非常适合于服务器与JavaS<wbr>cript</wbr>的交互;
JSON数据的数据格式
JSON数据格式非常简单,简单来说,只有四点:
1)并列数据之间用逗号(,)分隔;
2)映射用冒号(:)表示;
3)并列数据的集合用方括号([])表示;
4)映射的集合用大括号({})表示。
上面4条规则就是JSON的所有内容。
JSON的数据表示
和XML一样,JSON也是基于纯文本的数据格式。由于JSON天生是为JavaS<wbr>cript</wbr>准备的,因此,JSON的数据格式非常简单,您可以用JSON传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object对象。
1)字符串格式:和大多数编程语言一样,引号之内就可以定义字符串;
2)数字格式:
3)Boolean数据类型;表示为true和false;
4)Object对象:JSON中使用{}包含一系列无序的key-value键值对表示Object对象;
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格式的数据,如下:
如果想在页面中看到服务器端返回的JSON数据,利用以下的Javas<wbr>cript代码可以将数据显示到客户端页面:</wbr>
实际上Javas<wbr>cript是将服务器端返回的JSON数据赋值给一个JS变量,将JS变量输出即可在页面中显示服务器端返回的数据。<span style="font-family:宋体"></span> <p></p> <p><span style="color:rgb(0,0,255)">YAML</span></p> <p><span style="color:rgb(51,102,255)">什么是YAML?</span></p> <p>·YAML是一种直观的能够被电脑识别的的数据数据序列化格式;</p> <p>·换种说法,YAML是一种很简单的类似于XML的数据描述语言,语法比XML简单很多。</p> <p>YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。但<span style="color:rgb(0,128,0)">YAML不是XML</span>。</p> <p></p> <p></p> <p><span style="color:rgb(51,102,255)">YAML的优点?</span></p> <p>·可读性好;</p> <p>·和其它脚本语言的交互性好;</p> <p>·使用实现语言的数据类型;</p> <p>·提供了一个一致的信息模型;</p> <p>·可以基于流来处理;</p> <p>·表达能力强,扩展性好;</p> <p>·易于实现;</p> <p></p> <p></p> <p><span style="color:rgb(51,102,255)">YAML语法?</span></p> <p>在YAML里面,</p> <p>·<span style="color:rgb(0,128,0)">结构</span>通过缩进来表示;</p> <p>·<span style="color:rgb(0,128,0)">连续的项目</span>通过减号"-"来表示;</p> <p>·<span style="color:rgb(0,128,0)">map结构</span>里面的key/value对用冒号":"来分隔。</p> <p>·YAML也有用来描述好几行相同结构的数据的缩写语法,数组用'[]'包括起来,hash用'{}'来包括。</p> <p>例如:<br> name:JohnSmith</p> <p>age:37</p> <p>wife:</p> <p>name:JaneSmith</p> <p>age:25</p> <p>children:</p> <p>-name:JimmySmith</p> <p>age:15</p> <p>-name:JennySmith</p> <p>age12</p> <p>通过以上代码我们可以很容易了解一个人的基本信息,由此可见YAML的可读性确实不错。</p> <p></p> <p></p> <p><span style="color:rgb(51,102,255)">YAML的适用范围?</span></p> <p>·由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。</p> <p>·YAML比较适合做序列化。因为它是宿主语言数据类型直转的。</p> <p>·YAML做配置文件也不错。比如RubyonRails的配置就选用的YAML。</p> <p></p> <p><span style="color:rgb(51,102,255)">YAML的问题?</span></p> <p>由于兼容性问题,不同语言间的数据流转,建议现在不要用YAML。如兼容性没问题的话,<span style="font-family:Times New Roman">YAML</span><span style="font-family:宋体">就太完美了。轻巧,敏捷,高效,简便,通用。这才是理想中的数据模型。</span></p> <p>当然就现在而言,这还只是个理想。</p> <br></wbr>