JSON是什么?
JSON 是一种用于数据交换的文本格式(本质是一种文件组织方式,比如你熟悉的txt, csv, doc,docx文件等等),目的是取代繁琐笨重的XML格式。这种格式不仅人很容易进行阅读和编写,同时机器也很容易解析和生成,是当前十分流行的数据格式,尤其是在前端领域。JSON是一种传递对象的语法,对象可以是name/value对、数组和其他对象,现在浏览器都自带json解析。
简单来说json就是一种客户端与服务器都可以识别及解析的数据格式,避免了难以定义数据格式的麻烦。比如:如果你每个客户端想给服务器一次发送名称,年龄,密码等信息,那么服务器用什么数据结构来接收呢?有人就说用结构体,但是结构体中各个变量我们定义多大呢?是吧,多大都不合适,所以有了json这种统一的数据格式,双方都根据json的规则进行解析就可以获取到双方发送的字节流(网络中用字节流传输),而不必为定义每个数据的大小而苦恼(相当于发送接收都是一个json对象不存在大小不一致)。可以将json理解为一个容器,我们按照容器的打开方式就可以打开容器获取到数据。
举个栗子(下面提供一小段json代码)?
{
"firstname":"John",
"lastname":"smith",
"isAlive":true,
"age":25,
"address":{
"streetaddress":"21 street", //街道地址
"city":"XI'AN", //城市地址
},
"phonenum":{
{
"type":"home", //家庭电话
"number": "212555666"
},
{
"type":"office", //公司电话
"number":"645111999"
}
},
"children":{
[{"name":"mary","age",2},{"name":"bob","age":4}] //数组
},
"spouse":null
}
这是个json,存储的数据描述了一个人John Smith的一些个人信息,比如姓名,是否活着,年龄,地址以及电话号码等信息。其中,地址address和电话号码phonenum呢,下面又包含了街道、城市,家庭电话、办公电话信息。
如果之前只接触过存储在Excel或者sql server等结构化数据库中的结构化数据,那么第一次看到json格式的数据,一定觉得很新颖。这种数据组织方式,条理清晰,能更好的表示自然界中人或物等实体的属性关系。可以理解为一种树状结构,一棵有枝干,枝干上有叶子的树。
你看懂了吧?那么当你再看到它时就知道它是JSON了。主要部分:
花括弧,方括号,冒号和逗号
- 花括弧表示一个“容器”
- 方括号装载数组
- 名称和值用冒号隔开
- 数组元素通过逗号隔开
区分json和XML?
<1>什么是XML?
XML也是一种格式规范,是一种包含了数据以及数据说明的文本格式规范,它是可扩展标记语言。扩展标记语言不是超文本标记语言(eg:HTML)的替代而是对超文本标记语言的补充。XML不像HTML这种超文本标记语言用于网页的编辑(被设计用来显示数据,其焦点是数据的外观),它主要