千家信息网

如何理解数据类型和Json格式

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,如何理解数据类型和Json格式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前几天,我才知道有一种简化的数据交换格式,叫
千家信息网最后更新 2026年11月01日如何理解数据类型和Json格式

如何理解数据类型和Json格式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

前几天,我才知道有一种简化的数据交换格式,叫做yaml。

我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开。

它说,从结构上看,所有的数据(data)最终都可以分解成三种类型:

第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词。

第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海"。

第三种类型是映射(mapping),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary),比如"首都:北京"。

我恍然大悟,数据构成的最小单位原来如此简单!难怪在编程语言中,只要有了数组(array)和对象(object)就能够储存一切数据了。

我马上想到了json。

21世纪初,Douglas Crockford寻找一种简便的数据交换格式,能够在服务器之间交换数据。当时通用的数据交换语言是XML,但是Douglas Crockford觉得XML的生成和解析都太麻烦,所以他提出了一种简化格式,也就是Json。

Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。

1) 并列的数据之间用逗号(",")分隔。

2) 映射用冒号(":")表示。

3) 并列数据的集合(数组)用方括号("[]")表示。

4) 映射的集合(对象)用大括号("{}")表示。

上面四条规则,就是Json格式的所有内容。

比如,下面这句话:

"北京市的面积为16800平方公里,常住人口1600万人。上海市的面积为6400平方公里,常住人口1800万。"

写成json格式就是这样:

[  {"城市":"北京","面积":16800,"人口":1600},  {"城市":"上海","面积":6400,"人口":1800}  ]

如果事先知道数据的结构,上面的写法还可以进一步简化:

[  ["北京",16800,1600],  ["上海",6400,1800]  ]

由此可以看到,json非常易学易用。所以,在短短几年中,它就取代xml,成为了互联网上***的数据交换格式。

我猜想,Douglas Crockford一定事先就知道,数据结构可以简化成三种形式,否则怎么可能将json定义得如此精炼呢!

学习javascript的时候,我曾经一度搞不清楚"数组"(array)和"对象"(object)的根本区别在哪里,两者都可以用来表示数据的集合。

比如有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢?

我后来才知道,数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。

当然,数组和对象的另一个区别是,数组的数据没有"名称"(name),对象的数据有"名称"(name)。

但是问题是,很多编程语言中,都有一种叫做"关联数组"(associative array)的东西。这种数组中的数据是有名称的。

比如在javascript中,可以这样定义一个对象:

var a={"城市":"北京","面积":16800,"人口":1600};

但是,也可以定义成一个关联数组:

a["城市"]="北京";  a["面积"]=16800;  a["人口"]=1600;

这起初也加剧了我对数组和对象的混淆,后来才明白,在Javascript语言中,关联数组就是对象,对象就是关联数组。这一点与php语言完全不同,在php中,关联数组也是数组。

比如运行下面这段javascript:

var a=[1,2,3,4];  a['foo']='Hello World';  alert(a.length);

***的结果是4,也就是说,数组a的元素个数是4个。

但是,运行同样内容的php代码就不一样了:

结果是5,也就是说,数组a的元素个数是5个。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

数据 数组 对象 北京 格式 也就是 人口 面积 类型 语言 关联 名称 城市 就是 上海 运行 清楚 内容 结构 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有格互联网科技 科技股互联网 互联网和科技创新 美国互联网科技巨头监管 金融科技 互联网金融 合肥互联网科技公司 喔噻互联网科技 互联网科技缩写 中国互联网金融科技基金 互联网科技股午盘股票涨跌 阿里巴巴算科技企业还是互联网 互联网科技公司实习生 厦门千工互联网科技有限公司 国大互联网教育科技有限公司薪资 锡山区互联网智能科技产品供应 互联网企业科技类企业如何做账 互联网科技快讯热点 上海乐五互联网科技有限公司 互联网科技企业商标注意事项 武汉亿视互联网科技有限公司 河南云网互联网络科技有限公司 互联网科技工作委员会副主任毛军 兼蜜互联网科技 阿里互联网科技公司 风投北京互联网科技 全球科技与互联网公司市值变化 美国五大互联网科技公司市值多少 北京军民互联网科技公司 高科技和互联网的现代国家 如何强化互联网金融科技
0