新闻中心

J*ascript中的JSON如何解析与序列化?

2025-12-09
浏览次数:
返回列表
J*aScript中JSON解析与序列化依靠原生JSON.parse()和JSON.stringify(),前者将符合JSON格式的字符串转为JS值(需双引号),后者将JS值转为JSON字符串(忽略函数、undefined等),二者均需注意Date、循环引用、NaN等特殊值处理。

javascript中的json如何解析与序列化?

J*aScript 中的 JSON 解析与序列化主要靠 JSON.parse()JSON.stringify() 两个原生方法,它们不依赖外部库,安全、高效、浏览器和 Node.js 全支持。

JSON.parse():把字符串转成 J*aScript 对象

用于将符合 JSON 格式的字符串解析为对应的 JS 值(对象、数组、字符串、数字、布尔值或 null)。注意:JSON 键名和字符串值必须用双引号,单引号或未加引号的键会报错。

  • 基本用法:JSON.parse('{"name": "Alice", "age": 30}') → 返回一个对象
  • 带错误处理:建议用 try/catch 包裹,防止非法 JSON 导致脚本中断
  • 可选第二个参数 reviver 函数,用于在解析过程中过滤或转换值(例如把时间字符串自动转成 Date)

JSON.stringify():把 J*aScript 值转成 JSON 字符串

将对象、数组等 JS 值序列化为标准 JSON 字符串。只处理可枚举的自有属性,函数、undefined、Symbol、BigInt 和循环引用会自动被忽略或报错。

  • 基本用法:JSON.stringify({name: "Bob", active: true})'{"name":"Bob","active":true}'
  • 第二个参数可传数组(指定需要序列化的属性名)或 replacer 函数(自定义每个值的输出)
  • 第三个参数用于美化输出:传数字(缩进空格数)或字符串(如 '\t'),方便调试

常见坑与注意事项

这两个方法看似简单,但实际使用中容易踩坑:

eMart 网店系统 eMart 网店系统

功能列表:底层程序与前台页面分离的效果,对页面的修改无需改动任何程序代码。完善的标签系统,支持自定义标签,公用标签,快捷标签,动态标签,静态标签等等,支持标签内的vbs语法,原则上运用这些标签可以制作出任何想要的页面效果。兼容原来的栏目系统,可以很方便的插入一个栏目或者一个栏目组到页面的任何位置。底层模版解析程序具有非常高的效率,稳定性和容错性,即使模版中有错误的标签也不会影响页面的显示。所有的标

eMart 网店系统 0 查看详情 eMart 网店系统
  • Date 对象:直接 stringfy 会变成 ISO 字符串,parse 后只是普通字符串,不是 Date 实例
  • undefined / 函数 / Symbol:stringify 时会被跳过;若作为对象属性值,整个键值对消失
  • 循环引用:stringify 会抛出 TypeError,需提前检测或用第三方库(如 flatted)处理
  • NaN 和 Infinity:stringify 后变成 null,parse 后仍是 null,无法保留原意

简单实用技巧

日常开发中可以这样提升健壮性:

  • 封装安全 parse:const safeParse = str => { try { return JSON.parse(str); } catch { return null; } };
  • 深克隆小对象:用 JSON.parse(JSON.stringify(obj))(仅适用于纯数据,不含函数、Date 等)
  • 调试打印:用 console.log(JSON.stringify(data, null, 2)) 查看结构更清晰

基本上就这些。掌握好 parse 和 stringify 的行为边界,比记住语法更重要。

以上就是J*ascript中的JSON如何解析与序列化?的详细内容,更多请关注其它相关文章!


# 自定义  # 荆门化工行业网站推广  # 揭阳网站建设价格实惠  # 社区推广营销方案模板  # 昌图抖音推广招聘网站  # 网站推广优化做的步骤  # 西南关键词排名平台  # seo技术丿乐云seo  # 新闻推广营销  # 河东区营销推广网站地址  # 泰州网站建设定制  # 器中  # 如何实现  # 如何使用  # 报错  # javascript  # 第二个  # 键值  # 转成  # 网店  # 序列化  # 键值对  # 字符串解析  # 浏览器  # node  # json  # node.js  # js  # java 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: QQ邮箱登录官网首页 腾讯QQ邮箱网页入口  大麦的“候补”是什么意思 大麦候补购票规则【详解】  Spring Boot内嵌服务器与J*a EE全栈特性:选择与部署策略  lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法  谷歌google账号注册详细步骤 谷歌账号注册官方教程  fishbowl官网免费版 fishbowl养鱼网站入口  Angular中单选按钮的正确使用与常见陷阱解析  LINUX下如何进行磁盘分区_fdisk与parted工具在LINUX中的使用对比  照顾宝贝2小游戏点击立即在线玩  Win10系统怎么查看已安装更新_Win10卸载有问题的更新补丁  J*aScript map 迭代中检测空数组元素的有效方法  Win11输入法不见了怎么办_Windows11恢复语言栏显示方法  深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量  漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址  Win11网速慢怎么解决 Win11网络设置优化解除限速  PostgreSQL海量数据高效导入策略:Python与Django实践指南  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  163邮箱登录密码 163邮箱忘记密码找回  一加Ace 6T实拍样张首次公布!李杰:主摄实力完全看齐4K档性能旗舰  微信网页版官方入口教程 微信网页版网页版快速登录步骤  J*aScript中如何高效提取对象指定属性  Golang如何优化内存分配与垃圾回收_Golang内存管理与GC优化实践  学习通网页版官方登录 超星学习通电脑端入口指南  Gmail邮箱申请注册直达_Gmail邮箱免费注册PC版官网入口2025  QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  age动漫网站入口 age动漫官网直接访问入口  腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录  解决J*aScript中重复选择项的确认对话框显示问题  QQ邮箱网页版入口登录 QQ邮箱在线邮箱官方通道  如何使 Jest 模拟函数默认抛出错误以提高测试效率  韩剧圈正版入口页面_韩剧圈官网登录链接  Win10双系统截图高效法 截屏快捷键速记【技巧】  汽水音乐在线解析 汽水音乐在线解析入口  Mac怎么查看崩溃日志_Mac控制台错误报告分析  CSS如何设置hover状态颜色_hover伪类调整背景或文字颜色  Lar*el递归关系中排除子孙节点的策略  初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解  c++中的std::forward_list和std::list有什么不同_c++ forward_list与list区别分析  Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问  c++中的std::basic_string的SSO优化_c++短字符串优化深度解析  mcjs网页版在线存档 mcjs云存档登录入口  12306选座怎么选到商务座_12306商务座选择与配置说明  CSS Grid如何控制元素对齐_align-items与justify-items组合使用  Typer应用中动态命令行参数的解析与处理  J*a中实现Go语言select通道多路复用机制  怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】  极兔快递快件信息查询系统 极兔快递官网运单号追踪  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  Golang如何使用net/url解析URL_Golang URL解析与处理方法  C++如何连接MySQL数据库_C++使用Connector/C++操作MySQL数据库教程 

搜索