JSON

JSON

JSON就两个最常用的方法,会使用这两个就可以了:

  • JSON.parse()解析JSON字符串
  • JSON.stringify()把一个对象转化成JSON格式

描述:

  • JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。
  • JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。它基于 JavaScript 语法,但与之不同:JavaScript不是JSON,JSON也不是JavaScript。
  • JSON 比 XML 更小、更快,更易解析。
  • JSON是js的一个子集。JSON还定死了字符集必须是UTF-8,表示多语言就没有问题了。为了统一解析。
  • JSON的字符串规定必须用双引号"",Object的键也必须用双引号""。
  • 把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能够通过网络传递给其他计算机。
  • 如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScript对象,就可以在JavaScript中直接使用这个对象了。
  • JSON 不能存储 Date 对象。如果你需要存储 Date 对象,需要将其转换为字符串。

JSON的值可以是以下数据类型

  • number:和JavaScript的number完全一致;
  • boolean:就是JavaScript的true或false;
  • string:就是JavaScript的string;
  • null:就是JavaScript的null;
  • array:就是JavaScript的Array表示方式——[];
  • object:就是JavaScript的{ … }表示方式。

实例

我们把一个对象变成一个JSON

let person={
  name:'小米',
  age:12,
  adress:'北京',
  skill:['sing','dance','run'],
  grade:null,
  'mid-school':'Middle School'
}
console.log(JSON.stringify(person));//a1.html:26 {"name":"小米","age":12,"adress":"北京","skill":["sing","dance","run"],"grade":null,"mid-school":"Middle School"}

在这里插入图片描述
上述例子中我们有一个对象person,使用JSON.stringify()方法,把一个对象变成一个JSON对象。

语法规则

  • 属性名称必须是双引号括起来的字符串;最后一个属性后不能有逗号。
  • 数据在名称/值对中
  • 数据由逗号分隔
  • 大括号保存对象
  • 中括号保存数组

JSON.parse()

作用:将数据转换为 js对象。

  • 解析JSON字符串并返回对应的值,可以额外传入一个转换函数,用来将生成的值和其属性, 在返回之前进行某些修改。
  • JSON 通常用于与服务端交换数据。在接收服务器数据时一般是字符串。我们可以使用JSON.parse() 方法将数据转换为 JavaScript 对象。
  • 当我们拿到一个JSON格式的字符串时,我们可以使用JSON.parse()把它变成一个JS对象。

JSON.parse()语法

JSON.parse(text[, reviver])
  • 参数:
    text:必需, 一个有效的 JSON 字符串。
    reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

JSON.parse()实例

let a = '[1,2,3,true]';
console.log(JSON.parse(a));//[1, 2, 3, true]
let b = '{"name":"小米","age":12}';
console.log(JSON.parse(b));//{name: "小米", age: 12}
let c='true';
console.log(JSON.parse(c));//true
let d='123.45';
console.log(JSON.parse(d));//123.45

JSON.stringify()

作用:将js对象转化成JSON对象

  • 返回与指定值对应的JSON字符串,可以通过额外的参数, 控制仅包含某些属性, 或者以自定义方法来替换某些key对应的属性值。
  • JSON 通常用于与服务端交换数据。在向服务器发送数据时一般是字符串。们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

JSON.stringify()语法

JSON.stringify(value[, replacer[, space]])
  • 参数
    value:必需, 要转换的 JavaScript 值(通常为对象或数组)。

    replacer:可选。用于转换结果的函数或数组。如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
    如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。

    space:可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。

JSON.stringify()实例

let student={name:'lili',age:12,'adress':'beijing'};
console.log(JSON.stringify(student));
//打印结果
//{"name":"lili","age":12,"adress":"beijing"}

上面有一个对象student,如果我们需要把它发送到服务器后台,服务器后台需要JSON格式的数据,所以,我们可以使用JSON.stringify()方法,把对象转换成JSON对象,然后发送到后台。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值