在没有网路的年代,人们获取资讯的来源可能是报章杂志、广播电视等等,报章杂志的排版需要符合出版业的要求,广播的频道也有特定的频率,那麽网路世界的资料是不是也有特定的格式要求呢?
答案当然是有的,不然我铺这麽长的梗是为了什麽?
谈论到资料传输最常讨论的两个格式便是 JSON ( JavaScript Object Notation ) 和 XML ( EXtensible Markup Language ),JSON 还没发明前,大多是使用 XML,JSON 可以取代 XML 最大的原因大概便是它主打的轻量,为什麽可以做到轻量呢?先来看看三个宝物资料以 XML 和 JSON 的格式呈现有什麽差异?
// XML 格式
<treasures>
<treasure>
<type>gold</type> <value>100000</value>
</treasure>
<treasure>
<type>silver</type> <value>2000</value>
</treasure>
<treasure>
<type>jade</type> <value>5000</value>
</treasure>
</treasures>
//JSON 格式
{"treasures":[
{ "type":"gold", "value": 100000 },
{ "type":"silver", "value": 2000 },
{ "type":"jade", "value": 5000 }
]}
光是三笔资料就可以观察到XML格式储存了重复的属性名称,在资料量变多的状况下,档案会明显地更庞大造成传输速度变慢。
除了这两个格式以外,还有人提到一个叫YAML的格式,是一种适合表达资料序列化的格式。
奇怪小知识:YAML是"'
Y
AMLA
in't aM
arkupL
anguage"的递回缩写,递回缩写指的是参照自己而形成的缩写,据说这种命名方式原先是骇客社群的传统,但後来也渗透到各个领域。举几个比较知名的例子:
- GNU (
G
NU'sN
otU
NIX): 一个自由的作业系统,其设计类似Unix- VISA (
V
isaI
nternationalS
erviceA
ssociation): 对,就是大家信用卡上的VISA
好,岔题结束,我们还是言归正传地来认识JSON吧!
JSON 的语法是归属在JavaScript 语法规则下的子集,所以会觉得莫名熟悉,先看个简单的例子:
{"name":"Ironman"}
基本上物件能存的,JSON都可以储存,但有三种值不行
JSON之所以成为现今主流的资料传输格式,还有一点是因为大多的程序语言都有内建的方法或函式库,将JSON字串格式转成物件,我们先前提到的XML则需要使用专属的解析器,相较起来,JSON的操作容易许多。
来实际试试看JS提供的两个方法
JSON.stringfy()
确实转成JSON string,不过因为owner的value值是undefined,所以直接被忽略呢!!!
JSON.parse()
无聊冷笑话之JSON的反义词是什麽?
JSOFF。
参考资料:
w3school
资料传输三种格式
Introducing JSON
YAML - wiki
递回缩写
<<: [SQL] 读 XML 格式文件写入 SQL table
>>: [Angular] Day22. Common Routing Tasks(二)
再探链结串列与树结构 在前三天的刷题实战中,我们一起实作了线性的链结串列和非线性的树相关的题目。其...
什麽是 MVC 分别是 Model, View, Controller, 是一种软件架构, View...
文件 原文文件:Heterogeneous Memory Management (HMM) 摘要 这...
关於match的档案管理 第一,我们需要做删除的动作 第二,或者说,自订排程 删除档案 + 新增档案...
可以先去https://www.ifreesite.com/upload/ 这里上传图片取得网址 点...