【蓝牙小程序】谈谈 JSON.parse()的作用:常与本地缓存配合使用

news/2025/3/18 10:49:24/文章来源:https://www.cnblogs.com/FBsharl/p/18778475

在微信小程序中,JSON.parse() 是一个 JavaScript 内置函数,用于将 JSON 格式的字符串 转换为 JavaScript 对象。它的主要作用是将从网络请求、本地缓存或其他来源获取的 JSON 字符串解析为可操作的对象,以便在代码中使用。


1. JSON.parse() 的作用

  • 将 JSON 字符串转换为 JavaScript 对象
    JSON 是一种轻量级的数据交换格式,通常以字符串的形式传输或存储。JSON.parse() 可以将这种字符串解析为 JavaScript 对象,方便访问和操作其中的数据。

  • 处理复杂数据结构
    JSON 字符串可以表示复杂的数据结构(如嵌套对象、数组等),JSON.parse() 可以将其还原为对应的 JavaScript 对象或数组。


2. 使用场景

在微信小程序中,JSON.parse() 的常见使用场景包括:

(1)解析网络请求返回的数据

网络请求(如 wx.request)返回的数据通常是 JSON 格式的字符串,需要使用 JSON.parse() 将其转换为对象。

javascript
复制
wx.request({url: 'https://example.com/api/data',success(res) {const data = JSON.parse(res.data); // 将 JSON 字符串解析为对象console.log(data);},
});

(2)解析本地缓存数据

从本地缓存中读取的数据可能是 JSON 字符串,需要使用 JSON.parse() 解析。

javascript
复制
try {const jsonString = wx.getStorageSync('key');const data = JSON.parse(jsonString); // 将 JSON 字符串解析为对象console.log(data);
} catch (e) {console.error('解析失败', e);
}

(3)处理复杂数据结构

当 JSON 字符串表示复杂的数据结构(如嵌套对象或数组)时,JSON.parse() 可以将其还原为 JavaScript 对象。

javascript
复制
const jsonString = '{"name":"John","age":30,"hobbies":["reading","coding"]}';
const data = JSON.parse(jsonString);
console.log(data.name); // 输出: John
console.log(data.hobbies[0]); // 输出: reading

3. 语法

javascript
复制
JSON.parse(jsonString, reviver?)
  • jsonString:需要解析的 JSON 格式字符串。

  • reviver(可选):一个函数,用于在解析过程中对生成的对象的属性进行转换。


4. 示例代码

基本用法

javascript
复制
const jsonString = '{"name":"John","age":30}';
const data = JSON.parse(jsonString);
console.log(data.name); // 输出: John
console.log(data.age); // 输出: 30

解析嵌套对象

javascript
复制
const jsonString = '{"name":"John","address":{"city":"Shanghai","country":"China"}}';
const data = JSON.parse(jsonString);
console.log(data.address.city); // 输出: Shanghai

使用 reviver 函数

reviver 函数可以对解析后的对象的属性进行进一步处理。

javascript
复制
const jsonString = '{"name":"John","age":30}';
const data = JSON.parse(jsonString, (key, value) => {if (key === 'age') {return value + 1; // 将 age 的值加 1}return value;
});
console.log(data.age); // 输出: 31

5. 注意事项

  • JSON 字符串必须符合格式
    JSON 字符串必须是有效的 JSON 格式,否则会抛出错误。例如,键名必须用双引号包裹,不能使用单引号或无引号。

    javascript
    复制
    // 错误的 JSON 格式
    const invalidJson = "{'name':'John'}"; // 键名使用了单引号
    JSON.parse(invalidJson); // 报错: SyntaxError
  • 处理异常
    使用 try-catch 捕获可能的解析错误。

    javascript
    复制
    try {const data = JSON.parse(invalidJson);
    } catch (e) {console.error('解析失败', e);
    }
  • 性能问题
    对于非常大的 JSON 字符串,解析可能会占用较多资源,建议在必要时使用。


6. 与 JSON.stringify() 的关系

  • JSON.parse():将 JSON 字符串解析为 JavaScript 对象。

  • JSON.stringify():将 JavaScript 对象转换为 JSON 字符串。

两者通常配合使用,例如:

javascript
复制
const obj = { name: 'John', age: 30 };
const jsonString = JSON.stringify(obj); // 将对象转换为 JSON 字符串
console.log(jsonString); // 输出: {"name":"John","age":30}const parsedObj = JSON.parse(jsonString); // 将 JSON 字符串解析为对象
console.log(parsedObj.name); // 输出: John

7. 总结

  • JSON.parse() 用于将 JSON 格式的字符串转换为 JavaScript 对象。

  • 在微信小程序中,常用于解析网络请求、本地缓存等场景中的 JSON 数据。

  • 使用时需确保 JSON 字符串格式正确,并通过 try-catch 处理可能的异常。

  • 与 JSON.stringify() 配合使用,可以实现对象与字符串之间的相互转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/900835.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis应用_会话管理

Redis应用——会话管理 ​ 会话管理的核心是跟踪用户的会话状态,通常为每个用户分配一个唯一的会话 ID(Session ID),将用户的相关信息存储在服务器端,并通过该 ID 进行关联和查询。Redis 可以作为存储会话信息的数据库,将会话 ID 作为键,用户信息作为值进行存储。 一、配…

2025版PLM选型标准:10个行业TOP3厂商适配性对比

产品生命周期管理(PLM)系统在企业的产品研发、生产与管理过程中扮演着至关重要的角色。随着时间的推移,到 2025 年,不同行业对于 PLM 系统的需求更加多样化和精细化。选择一款适配自身行业特点的 PLM 系统,成为众多企业提升竞争力的关键举措。接下来,我们将深入探讨 10 个…

对象存储COS 云顾问:安全管理重磅升级,守护数据安全!

导语 在数字化浪潮下,对象存储 COS 作为海量数据的核心载体,安全防护能力至关重要。存储桶配置不当可能引发数据泄露、流量盗刷等安全问题,因此腾讯云对象存储 COS 基于云顾问的云巡检能力,正式推出全新「安全管理」功能,通过智能巡检、多维评估、实时管控三大核心能力,为…

小程序和APP抓包的问题

小程序和APP抓包的问题 很多同学都会遇到小程序和APP抓不到包的问题,抓不到https请求包,这边给大家提供一些解决方案。 Yakit工具 首先需要的就是一个抓包神器yakit,这个工具非常好用强大,具体安装和使用大家可以参考上一篇文章。 PC端小程序抓包 PC端可以采用双层代理的方…

【多届检索稳定医工交叉会议|EI检索稳且快】-第六届医学人工智能国际学术会议(ISAIMS2025)

大会简介 第六届医学人工智能国际学术会议(ISAIMS 2025)将于2025年10月24-26日于中国西安召开。会议自2020年至今已经成功举办五届,吸引了来自海内外相关领域学者千余名。本届会议将继续围绕人工智能在医学领域的最新研究成果,为来自国内外高等院校、科学研究所、企事业单位…

ChatGLM一键微调

阿里云平台配置DSW交互式建模实例创建每一步记得点击开始,一定要一个个点,下载完在点下一个最后完成之后,点击生成的地址跳转Demo页面Demo页面

关闭 WSL 中正在运行的 Linux 发行版

你使用 WSL 在 Windows 内运行 Linux 吗?你想知道如何关闭在 WSL 中运行的 Linux 发行版吗? 你当然可以在 WSL 中运行的 Linux 系统中 执行 shutdown 命令:sudo shutdown now你还可以使用 wsl 命令关闭 Linux 系统。如果你有多个发行版在 WSL 中运行,这是一种极好的方法。 …

windows如何调出剪贴板所有复制过的内容?

前言 大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要复制粘贴的。我们在windows上面开发的时候,默认都是复制后,就把之前的复制的内容替换了。这就导致我们的复制粘贴很不方便,其实,windows可以支持我们显示最近所有的复制内容的,具体怎么做呢?文末附快捷键方…

AI与.NET技术实操系列(七):使用Emgu CV进行计算机视觉操作

引言 计算机视觉(Computer Vision, CV)是人工智能领域中最为引人注目的分支之一。从自动驾驶汽车到医疗影像分析,从智能安防系统到虚拟现实体验,计算机视觉的应用无处不在,深刻地改变着我们的生活和工作方式。 对于.NET开发者而言,掌握计算机视觉技术不仅意味着能够开发出…

路由器安全研究:D-Link DIR-823G v1.02 B05 复现与利用思路

D-Link DIR-823G v1.02 B05存在命令注入漏洞,攻击者可以通过POST的方式往 /HNAP1发送精心构造的请求,执行任意的操作系统命令。前言 D-Link DIR-823G v1.02 B05存在命令注入漏洞,攻击者可以通过POST的方式往 /HNAP1发送精心构造的请求,执行任意的操作系统命令。 漏洞分析bi…

北斗卫星时钟源,安徽京准助力国产时间精准度

北斗卫星时钟源,安徽京准助力国产时间精准度北斗卫星时钟源,安徽京准助力国产时间精准度 北斗卫星时钟源,安徽京准助力国产时间精准度 京准电钟官微——ahjzsz 北斗卫星时钟源作为中国自主研发的全球卫星导航系统的重要组成部分,其时间精准度的提升依赖于技术创新和系统优化…

ASE60N30-ASEMI工业自动化专用ASE60N30

ASE60N30-ASEMI工业自动化专用ASE60N30编辑:LL ASE60N30-ASEMI工业自动化专用ASE60N30 型号:ASE60N30 品牌:ASEMI 封装:TO-247 最大漏源电流:60A 漏源击穿电压:300V 批号:最新 RDS(ON)Max:38mΩ 引脚数量:3 沟道类型:N沟道MOS管 封装尺寸:如图 特性:MOS管、N沟道…