现代信息时代,到处都是信息化,数字化。有的信息是天生的数字的,比如个数,1,2,3,4等;有些信息本身是非数字化的,比如声音,因此就有了“A/D”转换,将模拟信息数字化。
以前知道XML,最近做网页用到了。同学说,现在JSON很流行,于是在网上看了看网上的讲解,其实还是大同小异啊。
自从大学开始接触电脑,现在已经学了快5年了。也算是个小码农,由于最近看了JSON,总结总结那些见过的用过的“可扩展标记语言”进展。
1.((1+2)*(8/4)+(3*7)-21)
没错,这只是个简单的四则运算式子而已。我想这应该是后面提到的数据保存或者使用格式的祖先吧。
注意,这个式子,我在最外面也加了一层括号,表示这个式子是一个整体。根据运算法则 ,以及括号我们可以把它分成四部分,如下图的红色部分。有的是“最简形式“,如21;有的是”复合形式“,如(1+2),(8/2),(3*7)。
上图有没有看到XML的意味呢?继续往下看。
2.XML 、HTML
下面是一个简单的XML实例,也是XML的最一般形式。
考虑式子((1+2)*(8/4)+(3*7)-21),如果不考虑数据运算关系,比如+、-、*、/。只考虑数据的结合性以及运算顺序,可以把这个式子写成如下”类XML“形式,其中的箭头是用来说明范围:
所以说XML与算术表达式的有一定的的联系。
3.JSON
JSON的出现比XML晚一些,JSON相比XML用括号来表示范围。JSON只用于传输数据,传输相同的信息,JSON文件比XML小的多。
同样,对式子((1+2)*(8/4)+(3*7)-21),只考虑数字之间的结合。可以写成JSON文本的格式如下,如下图所示:
这里用到的是JSONArray,因为表达式计划有一定的顺序性,而不是”映射“关系的一堆集合数据。
4.数据结构
提到XML、JSON数据保存形式,就不得不提数据结构。
数据结构更多的体现在编程方面,即数据在内存中更好的组织,更快的访问。
如下是用C语言定义的一个学生数据结构:
typedef node { char[20] name; char sex; int age; }student;
student list[20];
数据结构就好比XML中DTD(文档类型定义),JSON中一个JSON对象内部的组织等。如果对你对XML有一定了解,完全可以把上面代码定义的list[20]写成XML文件的形式吧。
5.报表table、Excel、NoSQL
报表table就是数据的一种显示形式而已。数据可以是非常”结构化“,整整齐齐;也可以是”半结构化“的,比如合并单元格。
Excel是做报表table的软件了。
NoSQL是相对结构化数据提出的,可以支持”半结构化“的数据数据。
table、Excel、NoSQL很接近XML与JSON等比较灵活。
6.SQL中的table
学过或者用过数据库的人,都应该知道SQL吧,全称:结构化查询语言(StructuredQueryLanguage)。
”结构化“用关系型数据库的说法就是,表中不能有表,字段不能再分。
这更像是一种,定义严格的XML,或者叫XML加强版。
7.Hash
XML、Hash、Json、sql中都支持”键值对“,即按键所值。
总结:纵观这些数据结构或者数据形式都有一定的相相似性。算术表达式--->HTML/JSON/XML--->SQL/NOSQL,貌似这些概念的引入或者发明都没有我们的人呀。我们的码农们,要给力啊。
上面提到的这些概念有相似也有区别,学习这些重在理解、总结。