JSON.parse()反序列化数据丢失

序列化:将数据转换为字符串的过程称为序列化。在序列化过程中,数据结构(比如对象、数组等)被转换成一个字符串形式,这个字符串通常以特定的格式表示,比如 JSON 或 XML。

反序列化:反序列化是序列化的逆过程,它将之前序列化得到的字符串重新转换回原始的数据结构。这样就可以从字符串中恢复出原始的数据对象。

在 JavaScript 中,JSON.stringify() 方法用于序列化 JavaScript 对象为 JSON 字符串,而 JSON.parse() 方法用于将 JSON 字符串解析为对应的 JavaScript 对象,这两个方法就是序列化和反序列化的工具。

问题描述:

JSON.parse("10.0") 输出10

使用 JSON.parse() 方法解析字符串时,它会按照 JSON 规范将字符串转换为对应的 JavaScript 数据类型。在 JSON 中,数字可以表示为整数或浮点数。然而,在 JavaScript 中,数字没有被明确分成整数和浮点数类型。因此,在解析 JSON 字符串时,JSON.parse() 会将数字统一解析为 JavaScript 中的数字类型,而不区分整数和浮点数。

解决办法

使用 lossless-json

复制代码
npm install lossless-json
javascript 复制代码
import { parse, stringify } from 'lossless-json'

const json = parse('{"foo":"bar"}') // {foo: 'bar'}
const text = stringify(json) // '{"foo":"bar"}'

详细参考文档lossless-json - npm

相关推荐
庖丁AI3 小时前
PDF 表格提取到 CSV 和 JSON 怎么做?复杂版式要先解决结构化解析
pdf·json
CedarQR21 小时前
VS Code Copilot Chat 配置 MCP Server 全攻略(以 Next AI Draw.io 为例)
人工智能·ui·json
肖志-AI全栈21 小时前
从零讲透 Ajax:XHR、Fetch、JSON 序列化到异步编程全链路
前端·ajax·json
前端Baymax1 天前
JSON配置文件的UTF-8 BOM编码陷阱
json
东方-教育技术博主4 天前
论文全文翻译_通过VR课堂适应性反馈提升职前教师注意能力
json·vr
Random_index4 天前
#Vue3篇: Vue 项目发版后如何提示用户刷新?基于 package.json 版本号的前端更新检测方案
前端·vue.js·json
寻道模式4 天前
【开发心得】GA + 飞书频繁报错被忽略的“元凶”
json·飞书·ga
SelectDB技术团队4 天前
Agent 场景动态 JSON 性能拆解:Apache Doris 比 ClickHouse 快 7 倍、比 Elasticsearch 快 2 倍
数据库·clickhouse·elasticsearch·json·apache·日志分析·apache doris
Dontla4 天前
Claude Code如何管理自动执行的命令?(/permissions命令、settings.json、settings.local.json、命令权限)
json
Amy187021118235 天前
UL证书只是起点——智能电表出口北美,真正的考验在量产之后
json