JSON

JavaScript Object Notation 是一种用于数据交换的文本格式

格式

  • 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
  • 简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。
  • 字符串必须使用双引号表示,不能使用单引号。
  • 对象的键名必须放在双引号里面。
  • 数组或对象最后一个成员的后面,不能加逗号。

注意

空数组和空对象都是合格的 JSON 值,null本身也是一个合格的 JSON 值。

方法

JSON.stringify()

用于将一个值转为字符串,并且可以被JSON.parse方法还原。

JSON.stringify('abc')//""abc"" 
//双引号可以让 JavaScript 引擎知道,foo是一个字符串,而不是一个变量名
JSON.stringify(1)//"1"
JSON.stringify([])//"[]"
JSON.stringify({})//"{}"
JSON.stringify([1,2,'hello'])//"[1,2,"hello"]"
JSON.stringify(name : 'zhang')//"{"name":"zhang"}"

比较

JSON.stringify('abc') === "abc"//false
JSON.stringify('abc') === "\"abc\""//true
  • 对象中,有成员的值是undefined、函数等,这个成员会被JSON.stringify()过滤。
  • 数组中,成员是undefined、函数等,则这些值被转成null。正则对象会被转成空对象。

JSON.parse()

用于将JSON字符串转化成对象。

JSON.parse('"abc"');//"abc"
JSON.parse('true');//true
JSON.parse('{}');//{}
JSON.parse('[1,2,"hello"]');//[1, 2, "hello"]

你可能感兴趣的:(JSON)