新闻中心
什么是json_j*ascript中如何解析和生成?
JSON是轻量级数据交换格式,键名须双引号、禁末尾逗号、不支持函数/undefined/Symbol等;用JSON.parse()解析字符串为JS值,JSON.stringify()将JS值转为JSON字符串。

JSON(J*aScript Object Notation)是一种轻量级的数据交换格式,语法简洁、易读易写,也便于机器解析和生成。它不是 J*aScript 专属,但和 JS 对象字面量高度相似,因此在 J*aScript 中原生支持解析和生成。
JSON 和 JS 对象的区别
虽然长得像,但 JSON 是纯字符串格式,有严格规则:键名必须用双引号包裹,不能有单引号或不加引号;不允许末尾逗号;不能包含函数、undefined、Symbol、Date 实例、RegExp 等 JS 特有值;null 是合法的。
例如,这个是合法 JSON 字符串:
{"name": "张三", "age": 25, "isStudent": false}而下面这些不是合法 JSON:
立即学习“J*a免费学习笔记(深入)”;
- {'name': '张三'}(单引号 → 错误)
- {name: "张三"}(键没引号 → 错误)
- {age: 25,}(末尾逗号 → 错误)
- {date: new Date()}(含对象实例 → 不可序列化为 JSON)
用 JSON.parse() 解析 JSON 字符串
把符合 JSON 格式的字符串转成 JS 对象或数组,用 JSON.parse():
家电小商城网站源码1.0
家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l
0
查看详情
- 基本用法:JSON.parse('{"x":1,"y":2}') → 返回 {x: 1, y: 2}
- 带错误处理:必须用 try/catch,因为非法 JSON 会直接抛错
- 可选第二个参数 reviver 函数,用于在解析过程中转换值(比如把时间字符串转成 Date 对象)
示例:
try {const da
ta = JSON.parse('{"time":"2025-06-01"}', (key, value) => {if (key === 'time') return new Date(value);
return value;
});
// data.time 是 Date 实例
} catch (e) {
console.error('解析失败:', e.message);
}
用 JSON.stringify() 生成 JSON 字符串
把 JS 值(对象、数组、字符串、数字、布尔、null)转成 JSON 字符串,用 JSON.stringify():
- 基础用法:JSON.stringify({a: 1, b: [2,3]}) → {"a":1,"b":[2,3]}
- 第二个参数可传 replacer:数组(指定要保留的键)或函数(自定义序列化逻辑)
- 第三个参数可传空格数或字符串,用于美化输出(如缩进 2 个空格)
- 注意:undefined、函数、Symbol 会被忽略;NaN 和 Infinity 转为 null;Date 实例调用 toJSON()(即 ISO 字符串)
示例:
const obj = {id: 1,
name: "李四",
createdAt: new Date(),
meta: undefined,
fn: () => {}
};
console.log(JSON.stringify(obj, null, 2));
// 输出(自动忽略 meta 和 fn,日期转为字符串)
常见坑与注意事项
实际开发中容易踩的点:
- 后端返回的响应体是字符串,但忘了 JSON.parse() 就直接当对象用 → 报错 “xxx is not an object”
- fetch 或 axios 默认不自动解析 JSON,需手动调用 .json()(这是 Promise 方法,内部已封装 parse)
- 循环引用对象(比如 a.b = a)传给 stringify → 抛错 “Converting circular structure to JSON”
- 想序列化 Map/Set/BigInt/自定义类实例?原生不支持,需自行实现 replacer 或用第三方库(如 flatted、serialize-j*ascript)
基本上就这些。用好 JSON.parse 和 JSON.stringify,是前端日常处理接口数据最基础也最关键的技能之一。
以上就是什么是json_j*ascript中如何解析和生成?的详细内容,更多请关注其它相关文章!
# java
# seo优化文本在那
# 十大气质关键词排名
# 水杯网站推广计划
# 这是
# 是一个
# 数据交换
# 自己的
# 不支持
# 自定义
# 第二个
# 如何实现
# javascript
# js
# 前端
# json
# axios
# 后端
# ios
# 区别
# 转成
# 漯河关键词搜索排名原理
# 主题营销推广方案
# 制定营销推广计划
# seo数据分析推广
# 免费推广店铺网站
# 日语网站建设银行
# 西宁奶茶店网站建设
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Go语言中JSON数据解析与字段访问教程
C++如何实现单例模式_C++设计模式之线程安全的单例写法
苹果手机如何防止被恶意App追踪
Lar*el Excel导入时生成自定义递增ID的策略与实践
支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样
在Pyomo中实现基于变量的条件约束:Big-M方法详解
html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】
QQ邮箱在线使用入口 QQ邮箱个人账号网页版登录
押井守高度称赞《辐射4》:玩了八年都停不下来!
小米汽车11月交付量突破40000台!雷军:将继续努力
Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践
多闪网页版在线观看免费入口_多闪官网访问入口
yandex入口引擎手机版 yandex安卓版下载入口
Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS
mcjs网页版在线存档 mcjs云存档登录入口
蛙漫2台版漫画地址 Manwa2正版网页版链接
Composer的 "conflict" 字段有什么用_如何声明不兼容的包以避免依赖冲突
淘宝支付提示失败如何解决 淘宝支付流程优化方法
怎么在mac上运行html代码_mac运行html代码方法【指南】
html5 app怎么运行环境_配html5 app运行环境【教程】
Go调试环境为何无法启动_Go调试器启动失败原因与解决策略
印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】
如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构
荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】
J*aScript类型检查_j*ascript代码规范
Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】
AO3网页版最新入口合集 Archive of Our Own在线访问指南
C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用
文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】
mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤
小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍
蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
PrimeNG Sidebar背景色自定义指南:CSS覆盖与主题化实践
QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用
cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法
MAC如何安全彻底地删除文件_MAC使用终端命令确保文件无法被恢复
痛风发作了怎么办? 快速止痛和后期饮食调理
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
如何在Promise链中有效终止错误处理后的执行
React列表渲染与独立状态管理:避免全局状态影响局部更新
Python类型检查:优化关联可选属性的Mypy推断策略
谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航
漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道
响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
C++ explicit关键字防止隐式转换_C++构造函数安全规范
抖音极速版最新版本 抖音极速版官方下载地址


2025-12-16
浏览次数:次
返回列表