JSON是一种数据格式。JSON并不从属于JavaScript。而且,并不是只有JavaScript才使用JSON,毕竟JSON只是一种数据格式。很多编程语言都有针对JSON的解析器和序列化器。JSON由三种类型组成,简单、对象、数组。简单值包括数值、字符串、布尔值、null。对象由一组键值对组成,其中可以嵌套数组和对象。数组表示一组有序的值得列表,可以包含数组和对象。
console.log(JSON.parse(1)); console.log(JSON.stringify(1));
这样写是没有错的,可以直接解析数值,但是这个没有意义,一般实际运用中JSON都是以对象或数组的方式呈现。下面看看对象的表示法:
{ "name" : "OldLee", "age" : 28 } [1,2,"ac"]
JSON的对象和数组与JavaScript的对象字面量和数组字面量很像,在JSON中所有的键都要用双引号包裹,否则会导致语法错误。而字符串的值也必须使用双引号包裹,不能使用单引号,因为会导致语法错误,在数组中也是一样。在JSON中对象可以包含数组,而同样数组也可以包含对象。
{ "name" : "OldLee", "age" : 24, "skills" : ["Anglurjs", "ES6", "HTML5", "CSS3"], "friends" : [ { "name" : "king", "age" : 26 }, { "name" : "wang", "age" : 25 } ] }
JSON.parse;
作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)
语法:JSON.parse(text [, reviver])
text 必选。 一个有效的 JSON 字符串。
reviver 可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。
返回值:JSON对象
JSON.stringify
作用:将 JavaScript json对象转换为JavaScript对象表示法的JSON字符串(对象转为字符串)
语法:JSON.stringify(value [, replacer] [, space]);
value 必选 通常为对象或数组
replacer 可选转换结果的函数或数组
space 可选。 添加缩进、空白和换行符来返回值 JSON 文本更便于阅读。
如果省略 space,返回值文本生成,没有任何额外的空白。
如果 space 是数字,则返回值具有空白的文本缩进指定数目在每个级别的。 如果 space 大于 10 时,文本缩进 10 个空白。
如果 space 为非空字符串,如“ ”,返回值文本缩进与字符串的字符在每个级别。
如果 space 为大于 10 个字符的字符串,使用前 10 个字符。
返回值:JSON 包含的文本字符串。