JSON 语法


JSON 语法

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,由Douglas Crockford在2001年创造。它基于JavaScript语言的子集,但是可以被多种不同的编程语言解析和生成。

JSON 基本类型

JSON支持6种数据类型:

  • 字符串(string)
  • 数字(number)
  • 对象(object)
  • 数组(array)
  • 布尔值(boolean)
  • 空(null)

字符串类型

字符串是由双引号括起来的一串字符,例如:“hello world”。JSON的字符串必须用双引号,不能用单引号或者没有引号。

数字类型

数字类型可以是整数或者浮点数,并且不支持十六进制、八进制和科学计数法。例如:100,1.234。

对象类型

对象是由花括号包含的一组键值对,例如:{“name”: “Tom”, “age”: 28}。键值对中的键必须是字符串,值可以是任意的JSON类型。多个键值对用逗号隔开。

数组类型

数组是由方括号包含的一组值,例如:[1, 2, 3]。数组中的值可以是任意的JSON类型,多个值用逗号隔开。

布尔值类型

布尔值类型只有两个取值:true和false。

null类型

null类型只有一个值:null。表示一个空值。

JSON 编码

将一个JavaScript对象转换为JSON字符串的过程称为编码(serialize)。

使用JSON.stringify()方法可以将JavaScript对象转换为JSON字符串。

var obj = {name: "Tom", age: 28, friends: ["Mike", "John"]};
var jsonStr = JSON.stringify(obj);
console.log(jsonStr);

输出:

{"name":"Tom","age":28,"friends":["Mike","John"]}

JSON 解码

将一个JSON字符串转换为JavaScript对象的过程称为解码(parse)。

使用JSON.parse()方法可以将JSON字符串转换为JavaScript对象。

var jsonStr = '{"name":"Tom","age":28,"friends":["Mike","John"]}';
var obj = JSON.parse(jsonStr);
console.log(obj);

输出:

{
  name: "Tom",
  age: 28,
  friends: ["Mike", "John"]
}

JSON 注释

JSON不支持注释,如果需要注释可以将注释内容放在JSON字符串外面。

// 这是一个注释
{
  "name": "Tom",
  "age": 28
}