当前比较流行的几种数据交换格式
主要包括以下三种:
·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>
分享到:
相关推荐
Flex与Java之间的数据交换是跨平台应用程序开发中的一个重要环节,特别是在构建富互联网应用程序(RIA)时。Flex,作为Adobe开发的开源框架,主要用于创建交互式的、基于Flash的用户界面,而Java则是一种广泛使用的...
在Java编程语言中,数据交换是一项基础而重要的操作,它涉及到变量值的互换。本文将详细介绍Java中四种实现整数数据交换的经典方法,并重点分析其中两种被广泛认为是经典的交换方式。 ### 一、使用临时变量进行交换...
本微众银行开源轻量级数据交换平台Exchangis基于Java开发,包含1183个文件,包括Java源代码、PNG图片、XML配置文件、Scala源代码、Vue组件、JSON配置文件、Markdown文档、JavaScript脚本、Properties配置文件和SVG...
3. 跨语言支持:JSON 数据交换格式可以被多种编程语言支持,包括 JavaScript、Python、Java 等。 4. 可扩展性强:JSON 数据交换格式可以根据需要添加新的字段和数据类型,易于满足不同的应用需求。 三、JSON 数据...
- **Java**:作为开发语言之一,用于构建数据交换平台中的服务和中间件。 - **安全性技术**:如SSL/TLS等加密技术,用于保护数据交换过程中的信息安全。 通过上述介绍,我们可以看到数据交换平台不仅是一个简单的...
基于XML的异构数据交换技术及其Java实现
一种二进制数据交换的格式。格式对数据信息进行编码。实现语言:C、C++、Java、Object-C。适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 一种二进制...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在Java中,处理JSON数据是常见的任务,尤其是在前后端交互中,JSON作为...
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,最初由 Douglas Crockford 提出。它基于 JavaScript 的语法,但独立于任何编程语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升...
总之,Java的剪贴板功能使得程序间的数据交换变得简单易行。通过`Toolkit`和`Clipboard`类,我们可以轻松地将数据放入剪贴板,以及从剪贴板中读取数据,实现类似操作系统级别的复制和粘贴操作。这对于需要在不同应用...
Java本地接口是Java与C数据交换中最常用的方法之一。通过JNI,可以实现在Java应用中调用C/C++编写的函数,也可以在C/C++中调用Java方法。 - **类型映射**:Java和C的数据类型在映射时需要特别注意。例如: - Java...
标题中的"数据交换格式-Protocol Buffer"指的就是Protocol Buffer在不同系统和应用之间作为数据交换的通用格式。这种格式允许不同的系统和服务之间以一致、高效的方式传输和存储数据,降低了数据处理的复杂性。 ...
`java验证文件真实格式和编码格式工具类` 提供的功能对于处理不同来源的文件至关重要,尤其是在处理用户上传的文件或跨平台数据交换时。通过`VerifyFileType.java` 和 `VerifyFileEncoder.java`,开发者可以确保正确...
理解如何在Java中解析和生成JSON是现代软件开发的基本技能之一,因为JSON已经成为数据交换的事实标准。同时,需要注意的是,不同的库可能有不同的性能、内存消耗和API复杂性,因此在选择时应充分考虑项目的实际情况...
江苏瑞中数据股份有限公司(China Realtime Database Co.,Ltd.),简称CRD,是国网电力科学研究院/南京南瑞集团公司控股子公司,专业从事具有自主知识产权的大型通用实时数据库管理系统及数据管理软件的研究开发、...
1. **应用服务器的选择**:数据交换平台服务器采用满足J2EE(Java 2 Enterprise Edition)规范的应用服务器实现。这意味着整个平台能够支持复杂的企业级应用程序,并且具备良好的可扩展性和可靠性。 2. **接口描述...
XML是一种结构化数据格式,广泛用于数据交换。Java提供了JAXB(Java Architecture for XML Binding)来实现XML和Java对象之间的映射。导入时,JAXB可以将XML文件解析成Java对象,方便处理;导出时,将Java对象转换...
数字化校园中基于Java数据交换的设计与实现 Java 数据交换系统是数字化校园中的一种解决方案,可以实现学校内部管理人员、教师、学生之间的信息交换和数据传递。Java 作为一种跨平台、代码可移植、方便易学的编程...
2. **选择合适的交换格式**:根据实际需求和应用场景选择最合适的交换格式,比如GeoJSON适用于Web应用,而GML则更适合于正式的数据交换。 3. **开发转换算法**:基于对原始数据格式的理解以及目标交换格式的要求,...