类型 示例 说明
字符串 "这是一个字符串" 必须双引号,非单引号
数字 100、99.8、-1或3.14159e+24 整数、小数、负数、指数
null null 不能是undefined、None等
对象 {"domain": "rdtoc.com"} 花括号
数组 ["高","富","帅"] 中括号,元素用逗号分隔

字符串

在JavaScript中,使用双引号和单引号没有任何区别,但是请记住,JSON中只能使用双引号包裹字符串。有人要问了,像下面的例子在JSON中该如何表达?

{
  "title":"今天我们来聊一聊工作中的"""
}
首先,这肯定是一个错误的JSON,你的本意是想给坑字加上引号,通过JSON表达出来。碰巧双引号是JSON中的标识符。我们给要展示的标识符加上反斜杠\,告诉编译器这个符号不需要编译,直接展示就好了,这叫做转义。所以正确的写法是
{
  "title":"今天我们来聊一聊工作中的\"坑\""
}

又有人问了,如果字符串本身带反斜杠该如何表达?那我们就再给它一个反斜杠。 像"反斜杠\\转义"这样的JSON字符串将被翻译成"反斜杠\转义"

除了双引号和反斜杠,这些字符也需要转义:

  • \n(换行符)
  • \r(回车键)
  • \b(退格键)
  • \t(制表符)
  • \/(正斜杠)
  • \f(换页符)
  • \u(+十六进制字符)

数字

在JSON中,数字可以是整数,小数,负数或指数。数字不需要双引号。

{
    "integerNumber": 1092,
    "floatNumber": 191.11,
    "negativeNumber": -1,
    "scientificNumber": 782300
}

布尔值

在JSON中,真假用true/false表示。如果你了解Python,它的真假表示是首字母大写,请记住,JSON跟Python不一样,JSON仅能识别小写的true和false。

{
    "isHandson": true,
    "isUgly": false
}

null

null表示没有值,在JSON中,null必须使用小写形式。切记不要把null和JavaScript中的undefined混淆。 Python中用None表示没有值,跟JSON有所不同,同样需要留意。

{
    "sick": null
}