当前位置: 首页 > news >正文

js 简单模拟JSON.stringify 功能

作用:序列化成 一个 JSON 字符串的值

function stringifyJSON(value) {if (typeof value === "string") {//处理\和",加上""return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;}if (typeof value === "boolean") {return value.toString();}if (typeof value === "number") {//typeof value === "bigint" 无法序列化,返回'null'//如果参数是 NaN,正无穷大或者负无穷大,会返回falsereturn isFinite(value) ? value.toString() : "null";}if (Array.isArray(value)) {const arrayStr = value.map((item) => stringifyJSON(item)).join(",");//加上[]return `[${arrayStr}]`;}if (typeof value === "object") {//null 类型也是 objectif (value === null) {return "null";}//对象所有keyconst keys = Object.keys(value);const objectStr = keys.map((key) => {//值stringifyJSONconst val = stringifyJSON(value[key]);//重新组合,key加上""return `"${key}":${val}`;}).join(",");//加上{}return `{${objectStr}}`;}//undefined,symbol,bigintreturn "null";}

使用示例

const obj = {name: "小米",money: 2000,isSale: false,type: ["note1", "note2"],address: null,chip:undefined,getMoney: function () {return this.name;},};console.log("obj1", stringifyJSON(obj));//数组,undefined、任意的函数以及symbol值在序列化的过程中会被转换成 null//非数组,undefined、任意的函数以及symbol值在序列化的过程中会被忽略console.log("obj2", JSON.stringify(obj));

具体,参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify


http://www.mrgr.cn/news/61469.html

相关文章:

  • Pytorch通信算子组合测试
  • UE材质节点Fresnel
  • [AUTOSAR通信篇] - AutoSAR通信架构
  • matlab程序代编程写做代码图像处理BP神经网络机器深度学习python
  • 一个简单的html5导航页面
  • CentOS安装Git
  • 大模型AI在教育领域有哪些创业机会?
  • 解决IllegalAccessException: java.lang.Class<xxx.xActivity> is not accessible
  • iQOO手机怎样将屏幕投射到MacBook?可以同步音频吗?
  • 【338】基于springboot的IT职业生涯规划系统
  • 202409电子学会青少年机器人技术等级考试(五级)实际操作真题
  • 架设NFS服务器并根据一些要求进行配置
  • 【云原生】云原生后端:安全性最佳实践
  • 哈希概念与实现C++
  • 单片机原理及应用笔记:C51流程控制语句与项目实践
  • 基于SSM大学生评优管理系统的设计与实现
  • 推断统计——抽样分布、中心极限定理和置信区间
  • 2025第14届中国(上海)国际高纯金属材料及靶材展览会
  • C++,STL 051(24.10.28)
  • 基于Multisim的数字温度计设计与仿真
  • Android 部署web服务器
  • Hue3.9.0-cdh5.14.0安装
  • C语言中的野指针以及避免野指针的常用方式
  • ORBBEC_calss1_ubuntu20.04安装ros noetic
  • 一次性全讲清楚!Spring Cloud微服务
  • 【大数据学习 | kafka】kafka的shell操作