当前位置:首页 > Web开发 > 正文

json基础用法

2024-03-31 Web开发

标签:

JSON格式 JSON格式(JavaScript Object Notation的缩写)是一种用于数据交换的文本格式,2001年由Douglas Crockford提出,目的是取代繁琐笨重的XML格式。相比XML格式,JSON格式有两个显著的优点:书写简单,一目了然;符合JavaScript原生语法,可以由解释引擎直接处理,不用另外添加解析代码。所以,JSON迅速被接受,已经成为各大网站交换数据的标准格式,并被写入ECMAScript 5,成为标准的一部分。简单说,每个JSON对象,就是一个值。要么是简单类型的值,要么是复合类型的值,但是只能是一个值,不能是两个或更多的值。这就是说,每个JSON文档只能包含一个值。

JSON对值的类型和格式有严格的规定。

 1. 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。

 2. 简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和 null (不能使用 NaN , Infinity , -Infinity 和 undefined )。

 3. 字符串必须使用双引号表示,不能使用单引号。

 4. 对象的键名必须放在双引号里面。

 5. 数组或对象最后一个成员的后面,不能加逗号。

以下是合格的JSON值。合格的格式!

技术图片

输出之后:

技术图片

以下是不合格的JSON值。

技术图片

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

 

 

ES5新增了 JSON 对象,用来处理JSON格式数据。它有两个方法: JSON.stringify() JSON.parse()

JSON.stringify()

基本用法

 

 

JSON.stringify 方法用于将一个值转为字符串。该字符串应该符合JSON格式,并且

 

 

可以被 JSON.parse 方法还原。

技术图片

技术图片

上面代码将各种类型的值,转成JSON字符串。需要注意的是,对于原始类型的字符串,转换结果会带双引号,即字符串 abc 会被转成 "abc" ,这是因为将来还原的时候,双引号可以让JavaScript引擎知道, abc 是一个字符串,而不是一个变量名。如果原始对象中,有一个成员的值是 undefined 、函数或XML对象,这个成员会被省略。如果数组的成员是 undefined 、函数或XML对象,则这些值被转成 null

技术图片

上面代码中,原始对象的 f 属性是一个函数, JSON.stringify 方法返回的字符串会将这个属性省略。而 a 属性是一个数组,成员分别为函数和undefined,它们都被转成null

正则对象会被转成空对象。

技术图片

JSON.stringify 方法会忽略对象的不可遍历属性。

技术图片

上面代码中, bar obj 对象的不可遍历属性, JSON.stringify 方法会忽略这个属性。

第二个参数

JSON.stringify 方法还可以接受一个数组,作为第二个参数,指定需要转成字符串的属性。

技术图片

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/8595.html