JSON.stringify()和JSON.parse()的用法

本文介绍了JSON的基本概念,包括其作为数据交换格式的优势,如体积小、解析快等,并详细讲解了JSON对象的构成方式和使用场景。此外还提供了JSON.stringify与JSON.parse两个核心方法的具体示例。

JSON简介:
 JSON: JavaScript Object Notation(JavaScript 对象表示法)
 JSON 是存储和交换文本信息的语法。类似 XML。
  JSON 比 XML 更小、更快,更易解析。

JSON对象:
 JSON 对象使用在大括号({})中书写。
 对象可以包含多个 key/value(键/值)对。
 key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
 key 和 value 中使用冒号(:)分割。
 如:
 {name:"jack",age:"28",gender:"male"}

JSON.stringify的用法
 将JS对象转换成JSON字符串

var data = {aaa:1,bbb:18};
var string = JSON.stringify(data);
alert(string);
alert(typeof string);

这里写图片描述

这里写图片描述


JSON.parse的使用
 将JSON字符串转换成JS对象

var json = JSON.parse('{"name":"jack","age":"25"}',function(k,v){
        document.write(k);
        document.write(':');
        document.write(v);
        document.write("<br/>");
            });

这里写图片描述

JavaScript 中,`JSON.stringify` `JSON.parse` 是两个用于数据换的核心方法,它们经常被一起使用以实现数据的序列化反序列化。 `JSON.stringify` 用于将 JavaScript 对象换为 JSON 字符串。这个过程通常用于数据传输,例如在客户端服务器之间发送数据。如果对象中存在函数或 `undefined` 值,它们会被忽略或换为 `null` [^3]。 ```javascript let userObj = { name: "Sammy", email: "sammy@example.com", plan: "Pro" }; let userStr = JSON.stringify(userObj); console.log(userStr); // 输出: {"name":"Sammy","email":"sammy@example.com","plan":"Pro"} ``` 另一方面,`JSON.parse` 用于将 JSON 字符串解析成 JavaScript 对象。这对于从服务器接收的数据特别有用,可以轻松地将其换回可操作的对象形式 [^2]。 ```javascript let userStr = &#39;{"name":"Sammy","email":"sammy@example.com","plan":"Pro"}&#39;; let userObj = JSON.parse(userStr); console.log(userObj); // 输出: { name: "Sammy", email: "sammy@example.com", plan: "Pro" } ``` 当这两个方法一起使用时,可以实现对象的深拷贝。这意味着原始对象的任何更改都不会影响到拷贝后的对象,因为它们指向不同的内存地址。 ```javascript let original = { data: [1, 2, 3] }; let copy = JSON.parse(JSON.stringify(original)); original.data.push(4); console.log(copy); // 输出: { data: [1, 2, 3] } console.log(original); // 输出: { data: [1, 2, 3, 4] } ``` 需要注意的是,这种方法有其局限性。例如,它不能处理函数、`undefined` 值以及循环引用等复杂数据结构。此外,日期对象会被换为字符串,而不是保留其 `Date` 对象的形式 [^1]。 ### 使用场景 - **数据传输**:当需要通过网络发送数据时,通常使用 `JSON.stringify` 将数据换为字符串格式,以便于传输。 - **数据存储**:保存数据到本地存储时,可以先使用 `JSON.stringify` 将数据换为字符串。 - **数据恢复**:从服务器或本地存储读取数据后,使用 `JSON.parse` 将字符串换回 JavaScript 对象,以便于操作 [^4]。 ### 注意事项 - **数据类型限制**:`JSON.stringify` 无法正确处理函数、`undefined` 特殊对象(如 `Date`、`RegExp`)。 - **循环引用**:如果对象中存在循环引用,`JSON.stringify` 会抛出错误。 - **安全性**:使用 `JSON.parse` 解析来自不可信来源的字符串可能存在安全风险,应当谨慎处理 [^1]。 综上所述,`JSON.stringify` `JSON.parse` 是处理 JSON 数据不可或缺的工具,但在使用时需要注意它们各自的限制特点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值