JavaScript 如何生成 JSON

你肯定用过手机里的“备忘录导出成JSON文件”,或是网页里“点一下就把表单数据存成JSON”,这些功能背后,都藏着一个小操作:用JavaScript生成JSON。别担心,这不是什么复杂的代码魔法,用生活化的例子就能讲明白。

先搞懂:JSON到底是啥?

简单说,JSON就是个“标准化的电子登记表”,专门存键值对。键是“表的栏目名”,值是“栏目里的内容”,比如“姓名”对应“张三”、“年龄”对应18,而且只能用双引号,就像登记表必须印成统一格式,不然别人读不懂。

JavaScript 如何生成 JSON

第一步:用最常用的方法生成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规则的字符串,再根据需要加个缩进就好,完全不用复杂操作。

上一篇 C / C++ 编程语言核心特性与应用场景的趣味科普