阅读(1676) (23)

JSON 数据类型

2016-08-12 21:57:36 更新

JSON 格式支持以下数据类型:

类型 描述
数字型(Number) JavaScript 中的双精度浮点型格式
字符串型(String) 双引号包裹的 Unicode 字符和反斜杠转义字符
布尔型(Boolean) true 或 false
数组(Array) 有序的值序列
值(Value) 可以是字符串,数字,true 或 false,null 等等
对象(Object) 无序的键:值对集合
空格(Whitespace) 可用于任意符号对之间
null

数字型

  • JavaScript 中的双精度浮点型格式,取决于实现。
  • 不能使用八进制和十六进制格式。
  • 在数字中不能使用 NaN 和 Infinity。

下表展示了数字类型:

类型 描述
整形(Integer) 数字1-9,0和正负数
分数(Fraction) 分数,比如 .3,.9
指数(Exponent) 指数,比如 e,e+,e-,E,E+,E-

语法:

var json-object-name = { string : number_value, .......}

示例:

下面的示例展示了数字类型,其值不应该使用引号包裹:

var obj = {marks: 97}

字符串型

  • 零个或多个双引号包裹的 Unicode 字符以及反斜杠转义序列。
  • 字符就是只有一个字符的字符串,长度为 1。

下表展示了字符串类型:

类型 描述
" 双引号
反斜线
/ 斜线
b 退格符
f 换页符
n 换行符
r 回车符
t 水平制表符
u 四位十六进制数字

语法:

var json-object-name = { string : "string value", .......}

示例:

下面的示例展示了字符串数据类型:

var obj = {name: 'Amit'}

布尔型

它包含 true 和 false 两个值。

语法:

var json-object-name = { string : true/false, .......}

示例:

var obj = {name: 'Amit', marks: 97, distinction: true}

数组

  • 它是一个有序的值集合。
  • 使用方括号闭合,这意味着数组以 [ 开始,以 ] 结尾。
  • 值使用 ,(逗号)分割。
  • 数组索引可以以 0 或 1 开始。
  • 当键名是连续的整数时应该使用数组。

语法:

[ value, .......]

示例:

下面的示例展示了一个包含多个对象的数组:

{
    "books": [
        { "language":"Java" , "edition":"second" },
        { "language":"C++" , "lastName":"fifth" },
        { "language":"C" , "lastName":"third" }
    ]
}

对象

  • 它是一个无序的名/值对集合。
  • 对象使用大括号闭合,以 '{' 开始,以 '}' 结尾。
  • 每个名称后面都跟随一个 ':'(冒号),名/值对使用 ,(逗号)分割。
  • 键名必须是字符串,并且不能同名。
  • 当键名是任意字符串时应该使用对象。

语法:

{ string : value, .......}

示例:

下面的例子展示了对象:

{
    "id": "011A",
    "language": "JAVA",
    "price": 500,
}

空格

可以在任意一对符号之间插入。可以添加用来让代码更可读。下面的例子展示了使用空格和不使用空格的声明:

语法:

{string:"   ",....}

示例:

var i= "   sachin";
var j = "  saurav"

null

意味着空类型。

语法:

null

示例:

var i = null;

if(i==1) {
    document.write("<h1>value is 1</h1>");  
} else {
    document.write("<h1>value is null</h1>");
}

JSON 值

包括:

  • 数字(整型和浮点型)
  • 字符串
  • 布尔值
  • 数组
  • 对象
  • null

语法:

String | Number | Object | Array | TRUE | FALSE | NULL

示例:

var i =1;
var j = "sachin";
var k = null;