JavaScript 如何生成 JSON
你肯定用过手机里的“备忘录导出成JSON文件”,或是网页里“点一下就把表单数据存成JSON”,这些功能背后,都藏着一个小操作:用JavaScript生成JSON。别担心,这不是什么复杂的代码魔法,用生活化的例子就能讲明白。
先搞懂:JSON到底是啥?
简单说,JSON就是个“标准化的电子登记表”,专门存键值对。键是“表的栏目名”,值是“栏目里的内容”,比如“姓名”对应“张三”、“年龄”对应18,而且只能用双引号,就像登记表必须印成统一格式,不然别人读不懂。

第一步:用最常用的方法生成JSON
JavaScript里有个自带的工具叫JSON.stringify(),就像个“自动填表机”,把你整理好的JavaScript对象直接转成标准JSON。
举个日常例子:你用手机记了个“周末出行计划”的便签,用JavaScript存成对象就是这样:
`javascript
// 这是你在代码里整理的“出行信息”
const tripPlan = {
destination: "杭州西湖",
date: "2024-09-15",
companions: ["爸妈", "妹妹"], // 数组也能转
budget: 800,
hasSnacks: true
};
`
要把这个变成能存文件的JSON,只要加一行代码:
`javascript
const jsonData = JSON.stringify(tripPlan);
`
得到的jsonData就是标准JSON字符串:
`json
{"destination":"杭州西湖","date":"2024-09-15","companions":["爸妈","妹妹"],"budget":800,"hasSnacks":true}
`
是不是像把自己记的便签,按公司统一格式重新誊了一遍?
小技巧:让JSON看得更舒服
有时候JSON太长,找内容像在找迷宫,JSON.stringify()还能加个“空格参数”,把JSON变成带缩进的“格式化版本”,就像给便签加了行间距:
`javascript
const prettyJson = JSON.stringify(tripPlan, null, 2);
`
输出的内容就整齐多了:
`json
{
"destination": "杭州西湖",
"date": "2024-09-15",
"companions": [
"爸妈",
"妹妹"
],
"budget": 800,
"hasSnacks": true
}
`
这个格式化后的内容,不管是你自己看,还是存成文件,都更清晰。
避坑:这些情况别乱转
不是所有数据都能直接转成JSON,就像不是所有随手写的便签都能拿去归档,有几种情况要注意:
- 函数不能转:如果对象里有个“提醒闹钟”的函数
()=>alert("起床"),转成JSON会直接忽略,因为JSON只存数据,不存“做事的方法”。 - 特殊值要注意:如果值是
undefined,转成JSON会变成null;如果是日期对象,转成后会变成字符串(比如"2024-09-15T00:00:00.000Z"),要记得提前处理成自己需要的格式。 - 键名别用单引号:JSON要求键名必须用双引号,如果你在JavaScript里用了单引号,转成JSON后会自动改成双引号,不用自己手动改。
日常用的场景
你可能已经用过生成JSON的功能却没察觉:比如在网页上填完问卷,点“提交”后,浏览器会把你的答案转成JSON发给服务器;或是用浏览器的“导出数据”功能,把收藏夹的链接导成JSON文件,这些都是JSON.stringify()在帮忙。
只要记住,JavaScript生成JSON的核心就是用JSON.stringify(),把你的数据整理成符合JSON规则的字符串,再根据需要加个缩进就好,完全不用复杂操作。