JavaScript 之 JSON [4] parse()和stringify() -JSON字符串和JavaScript对象数据之间的相互转换
JavaScript 之 JSON [4] parse()和stringify() -JSON字符串和JavaScript对象数据之间的相互转换
1、JSON.parse()
JSON.parse()方法用于将一个JSON字符串解析为一个JavaScript对象。JSON字符串必须使用双引号包括属性名和字符串值,不能使用单引号或无引号。
语法:
1 | JSON.parse(text, reviver) |
参数:
- text: 必须,要转换成JavaScript对象的JSON字符串。
- reviver: 可选,是一个函数,用来在返回之前对所得到的对象执行变换。
示例:
1 2 3 4 5 | const jsonString = '{"name": "滔Roy", "date": "2023.04.14", "other": [12, "TaoRoy", null, true]}' ; const jsonObject = JSON.parse(jsonString); console.log(jsonObject.name); // 输出:滔Roy console.log(jsonObject.date); // 输出:2023.04.14 console.log(jsonObject.other); // 输出:[12, "TaoRoy", null, true] |
2、JSON.stringify()
JSON.stringify()方法用于将JavaScript对象转换为JSON字符串。JSON.stringify()可以接收3个参数,其中前两个是必选参数,第三个是可选的。
语法:
1 | JSON.stringify(value, replacer, space) |
参数:
- value: 必须,要转换成JSON字符串的JavaScript对象。
- replacer: 可选,是一个函数或数组,用于控制序列化过程中对象的哪些属性被包含在JSON字符串中。
- space: 可选,用于控制缩进,可以是一个数字或字符串。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | const jsonObject = { //对象 "name" : "滔Roy" , "date" : "2023.04.14" , "other" :[12, "TaoRoy" , null , true ] //数组 }; const jsonString = JSON.stringify(jsonObject); console.log(jsonString); // 输出:{"name":"滔Roy","date":“2023.04.14”,"other":[12,"TaoRoy",null,true]} // 使用replacer参数过滤掉other属性 const jsonString2 = JSON.stringify(jsonObject, [ "name" , "date" ]); console.log(jsonString2); // 输出:{"name":"滔Roy","date":“2023.04.14”} // 使用replacer参数将值转换为大写 const jsonString3 = JSON.stringify(jsonObject, (key, value) => { if ( typeof value === "string" ) { return value.toUpperCase(); } return value; }); console.log(jsonString3); // 输出:{"name":"TAOROY","date":"2023.04.14","other":[12,"TAOROY",2023,true]} // 使用space参数增加缩进 const jsonString4 = JSON.stringify(jsonObject, null , 2); console.log(jsonString4); // 输出: //{ // "name": "TaoRoy", // "date": "2023.04.14", // "other": [ // 12, // "TaoRoy", // 2023, // true // ] //} |
注意:JSON.stringify()方法只能序列化可枚举的自有属性。如果要序列化一个对象的原型属性和方法,需要使用自定义的序列化函数。
创建时间:2023.04.14 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
2022-04-14 Delphi Clipboard[6] SetAsHandle、GetAsHandle 自定义格式,以指定格式处理数据
2022-04-14 Delphi Clipboard[5] SetComponent、GetComponent -组件在剪贴板中的操作
2022-04-14 Delphi Clipboard[4] Formats、FormatCount -格式化列表
2022-04-14 Delphi Clipboard[3] HasFormat、Assign及Image图片的加载
2022-04-14 Delphi Clipboard[2] SetTextBuf、GetTextBuf、AsText -文本操作
2022-04-14 Delphi Clipboard[1] 剪贴板 介绍
2021-04-14 Delphi 自定义组件/控件图标