0%

JSON Simple Research

Source: w3c

JSON是什么

JSON是 JavaScript Object Notation,JS对象表示方法,是一种数据的标识格式,与XML类似,指的是数据内容。

JSON特点

  • JSON 是用来描述对象的一种语言,其标记性没有像XML那么重;
  • JSON 具有“自我描述性”(人类可读);
  • JSON 具有层级结构(值中存在值)。

JSON与XML语言的主观差异

先看两个例子,有一个主观对比:

1
2
3
4
5
6
7
{
"sites": [
{ "name":"菜鸟教程" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}
1
2
3
4
5
6
7
8
9
10
11
<sites>
<site>
<name>菜鸟教程</name> <url>www.runoob.com</url>
</site>
<site>
<name>google</name> <url>www.google.com</url>
</site>
<site>
<name>微博</name> <url>www.weibo.com</url>
</site>
</sites>
  • 两种语言的创建目的不同,导致他们放在一起比较就不合适。
    • JSON是面向JS对象的一种数据序列话描述语言,内容为主,格式其次;
    • XML是标记语言,以标签为基础,内容其次。
      • 能与XML进行比较HTML更加合适。
        • HTML标签固定
        • XML标签自定义
      • XML是一种明显的树形结构

JSON内两种数据

  1. 键值对:可表示对象、记录、字典、哈希表等
  2. 有序对:列表,向量,序列等

这只是一种数据的理解方式,我也可以理解为三种数据:

  1. {} : 对象
  2. [] : 列表
  3. 标量

JSON语法规则

  • 数据使用键值对表示;
  • 数据之间使用“,”分隔;
  • {}表示为对象
  • []表示为数组

键值对的表示形式

1
"firstName" : "John"

“字段名称” : “值”

注意 字段名称 采用了双引号

值的选择范围

  • 数字(整数或者浮点数)
  • 字符串(需要双引号)
  • 布尔值(true/false)
  • 数组 ([])
  • 对象 ({})
  • null

JSON 对象

JSON 对象在花括号中书写:

对象可以包含多个名称/值对:

1
{ "firstName":"John" , "lastName":"Doe" }

这一点也容易理解,与这条 JavaScript 语句等价:

1
2
firstName = "John"
lastName = "Doe"

JSON 数组

JSON 数组在方括号中书写:

数组可包含多个对象:

1
2
3
4
5
6
7
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

在上面的例子中,对象 “employees” 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。