Java之数据交换格式

当前比较流行的几种数据交换格式

主要包括以下三种:

·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的有优点?

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

·同XMLHTML片段相比,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传输一个简单的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数据,利用以下的Javas<wbr>cript代码可以将数据显示到客户端页面:</wbr>

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

实际上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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值