java网络编程学习小结(二)
2.1:数据交换格式
数据交换格式就像两个人在聊天一样,采用彼此都能听得懂的语言,你来我往,其中的语言就相当于通信中的数据交换格式。有时候,为了防止聊天被人偷听,可以采用暗语。同理,计算机程序之间也可以通过数据加密技术防止“偷听”。
数据交换格式主要分为纯文本格式、XML格式和JSON格式,其中纯文本格式是一种简单的、无格式的数据交换方式。
例如,为了告诉别人一些事情,我会写如下所示的留言条。
艾利斯同学:
你好!
流星又再一次降临大地,往日的约定已不再清晰,愿你愿我不忘初心,一往无前,【银子弹 】
啊!
风之旅人
2050年3月12日
留言条有一定的格式,共有4部分:称谓、内容、落款和时间,如果用纯文本格式描述留言条,可以按照如下的形式:
“艾利斯同学”.“你好!\n流星又再一次降临大地,往日的约定已不再清晰,愿你愿我不忘初心,一往无前,【银子弹 】 啊!”,“风之旅人”, “2012年12月08日”
留言条中的4部分数据按照顺序存放,各个部分之间用逗号分割。数据量小的时候,可以采用这种格式。但是随着数据量的增加,问题也会暴露出来,可能会搞乱它们的顺序,如果各个数据部分能有描述信息就好了。而XML格式和JSON格式可以带有描述信息,它们叫做“自描述的”结构化文档。
将上面的留言条写成XML格式,具体如下:
<?xml version="1.O" encoding="UTF-8"?>
艾利斯同学
流星又再一次降临大地,往日的约定已不再清晰,愿你愿我不忘初心,一往无前,【银子弹 】 啊!
风之旅人
2050年3月12日
上述代码中位于尖括号中的内容(…等)就是描述数据的标识,在XML中称为“标签”,将上面的留言条写成JSON格式,具体如下:
{
“to”:“艾利斯同学”,
“conent”:“流星又再一次降临大地,往日的约定已不再清晰,愿你愿我不忘初心,一往无前,【银子弹 】 啊!”,
“from”:“风之旅人”,
“date”:“2050年3月12日”
}
数据放置在大括号{}之中,每个数据项目之前都有一个描述名字(如 to 等),描述名字和数据项目之间用冒号 :分开。可以发现,一般来讲,JSON所用的字节数要比XML少,这也是很多人喜欢采用JSON格式的主要原因,因此JSON也被称为“轻量级”的数据交换格式。接下来,重点介绍JSON数据交换格式。
2.2JSON文档结构
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。所谓轻量级,是与XML文档结构相比而言的,描述项目的字符少,所以描述相同数据所需的字符个数要少,那么传输速度就会提高,而流量却会减少。由于Web和移动平台开发对流量的要求是要尽可能少,对速度的要求是要尽可能快.而轻量级的数据交换格式JSON就成为理想的数据交换格式。构成JSON文档的两种结构为对象和数组。对象是“名称-值”对集合,它类似于Java中Map类型,而数组是一连串元素的集合。对象是一个无序的“名称/值”对集合,一个对象以{(左括号〉开始,}(右括号)结束。每个“名称”后跟一个:(冒号),“名称-值”对之间使用,(逗号)分隔。JSON对象的语法表如下图所示:
下面是一个json对象的例子:
{
“name”:“张三”,
“sex”:“男”,
“age”:“15”
}
数组是值的有序集合,以[(左中括号)开始,](右中括号)结束, 值之间使用,(逗号)分隔,数组的语法如下图
所示:
下面是一个数组的例子:
{“name”,“sex”,“age”}
在数组中,值可以是双引号括起来的字符串、数值、true、false、null、对象或者数组,