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

电子网站建设怎么做广州各区进一步强化

电子网站建设怎么做,广州各区进一步强化,注册一个设计公司需要多少钱,哪里做网站最便宜JSON 通常用于与服务端交换数据。 在向服务器发送数据时一般是字符串。 JSON.stringify 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。 JSON.stringify(value[, replacer[, space]])value:这是必需的参数,代表要转换为 JSON 字…
  • JSON 通常用于与服务端交换数据。
    • 在向服务器发送数据时一般是字符串。

JSON.stringify

  • 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。
    • JSON.stringify(value[, replacer[, space]])
    • value:这是必需的参数,代表要转换为 JSON 字符串的值,可以是对象、数组、字符串、数字、布尔值等。
    • replacer:这是可选参数,它可以是一个函数或者数组。
      若 replacer 是函数,在转换过程中会对每个属性调用该函数,以此来决定是否包含该属性或者对属性值进行转换。
      若 replacer 是数组,那么只有数组中包含的属性名会被包含在最终的 JSON 字符串里。
    • space:这也是可选参数,它可以是数字或者字符串,用于指定缩进的空格数或者缩进字符串,目的是让生成的 JSON 字符串更具可读性。

问题分析及原因

  1. 函数、undefined、Symbol 会被删除,不止value还会包括key
    • 原因:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它只支持几种基本的数据类型,如字符串、数字、布尔值、对象、数组和 null。函数、undefined 和 Symbol 不属于这些基本类型,因此在使用 JSON.stringify() 时会被忽略。
const obj = {func: function() {console.log('This is a function');},undef: undefined,sym: Symbol('test')
};
const jsonStr = JSON.stringify(obj);
console.log(jsonStr); // 输出: {}
  1. 正则表达式、Error 对象得到空对象
    • 原因:JSON.stringify() 在处理正则表达式和 Error 对象时,无法将它们的特殊属性和方法序列化为有效的 JSON 格式,所以会将它们转换为空对象。
const regexObj = {regex: /abc/g
};
const errorObj = {error: new Error('This is an error')
};
const regexJsonStr = JSON.stringify(regexObj);
const errorJsonStr = JSON.stringify(errorObj);
console.log(regexJsonStr); // 输出: {"regex":{}}
console.log(errorJsonStr); // 输出: {"error":{}}

在这里插入图片描述

解决方案

通过自定义 replacer 和 reviver 函数,你可以在一定程度上解决 JSON.stringify() 和 JSON.parse() 处理特殊类型数据的问题。

  1. JSON.stringify的自定义 replacer 函数
    • JSON.stringify() 方法接受一个可选的 replacer 函数,你可以在这个函数中自定义如何处理特殊类型的数据。
const obj = {func: function() {console.log('This is a function');},undef: undefined,sym: Symbol('test'),regex: /abc/g,error: new Error('This is an error')
};const customReplacer = (key, value) => {if (typeof value === 'function') {return value.toString();}if (typeof value === 'undefined') {return 'undefined';}if (typeof value === 'symbol') {return value.toString();}if (value instanceof RegExp) {return value.toString();}if (value instanceof Error) {return { name: value.name, message: value.message };}return value;
};const jsonStr = JSON.stringify(obj, customReplacer);
console.log(jsonStr);
  1. JSON.parse的自定义 reviver 函数
  • 还原上面的特殊处理
const customReviver = (key, value) => {if (typeof value === 'string') {if (value.startsWith('function')) {return new Function(`return ${value}`)();}if (value === 'undefined') {return undefined;}if (value.startsWith('Symbol')) {return Symbol(value.slice(7, -1));}if (value.startsWith('/') && value.endsWith("g")) {const parts = value.match(/\/(.*)\/(.*)/);return new RegExp(parts[1], parts[2]);}}if (value && value.name === 'Error') {const error = new Error(value.message);error.name = value.name;return error;}return value;
};const parsedObj = JSON.parse(jsonStr, customReviver);
console.log(parsedObj);

在这里插入图片描述

http://www.dtcms.com/wzjs/323709.html

相关文章:

  • 知乎问答网站开发教程外贸网站制作推广
  • 西藏自治区住房和城乡建设厅网站首页sku电商是什么意思
  • 找网络公司做网站需要注意什么西安seo优化工作室
  • 郑州做网站免费网站安全软件大全游戏
  • 怎么学做电商安徽网络推广和优化
  • 品牌vi设计全套通州优化公司
  • 东莞营销型网站建设流程新余seo
  • 企业申报网站百度推广视频
  • 伦敦做网站市场调研报告范文模板
  • 做博客网站什么空间好汕头seo
  • 哪有做企业网站360收录查询
  • 公司网站开发排名上海网站排名seo公司哪家好
  • 中国十大品牌策划公司seo搜索引擎优化怎么优化
  • 夜晚十大禁用直播app推广优化方案
  • 怎么做高保真网站广州推广引流公司
  • 刷赞网站推广qq免费seo自然排名关键词来源的优缺点
  • 自己开发电商网站难吗怎么创建网页
  • 招聘网站开发实训报告网络营销策划的方法
  • 主营 网站建设 app开发哪家培训机构好
  • 武汉珞珈网站建设免费建自己的网站
  • 如何用python做网站app推广项目从哪接一手
  • 网站访问量太多地推的60种方法
  • 谷歌推广方案seo运营学校
  • 如何搭建自己的网站服务器地址武汉seo排名
  • 网址导航网站制作工具东莞做网络推广的公司
  • 网站建设选择什么模式游戏推广论坛
  • 网站中的知识 视频从哪里来的seo诊断专家
  • 网站建设的机构做网页的网站
  • 淄博网站建设乐达推广360搜索引擎地址
  • 做网站用java 还是php域名关键词查询