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

es6常用方法来解决功能需求

前言:

        es6常用方法来解决功能需求。

1、出现复杂的json字符串如何去解析?

比如:下面这个字符串,如果用json.parse解析发现还是个字符串

"\"[{\\\"orgId\\\":\\\"1054021138280960\\\",\\\"orgName\\\":\\\"Engineering Department\\\"},{\\\"orgId\\\":\\\"1054021253648896\\\",\\\"orgName\\\":\\\"Project Team A\\\"}]\"";

解决方法

        思路就是通过多级解析来解决问题,如果还是json字符串就在解析,如果不是就证明我们解析成功了。

封装方法:

parseMultiEscapedJSON(str) {try {// 可能需要多次解析直到得到最终对象let result = str;while (typeof result === 'string') {result = JSON.parse(result);}return result;} catch (e) {console.error('解析失败:', e);return null;}}

还有其它封装方法:

function safelyParseJSON(str) {try {// 尝试直接解析return JSON.parse(str);} catch (e) {try {// 如果失败,尝试去除可能的多余转义let cleanedStr = str;// 处理多层转义情况while (cleanedStr.includes('\\"') && cleanedStr.startsWith('"') && cleanedStr.endsWith('"')) {cleanedStr = cleanedStr.slice(1, -1).replace(/\\"/g, '"');}return JSON.parse(cleanedStr);} catch (e2) {console.error("无法解析JSON字符串:", e2);return null;}}
}// 使用示例
const result = safelyParseJSON(escapedString);
console.log(result);

2、根据多个参数,动态&拼接字段

我们实际使用中,需要循环对象的场景挺多的,二期还可以配合map啊等方法满足我们的需要

比如:`/dataPermission/queryWorkflowInfo?workFlowId=${params.workFlowId}&tenantId=${params.tenantId} `  我们拼接一个这样的字符串,可以通过方法让循环params来实现动态拼接

方法1:

const queryString = Object.keys(params).map(key => `${key}=${params[key]}`).join('&');const result = `/dataPermission/queryWorkflowInfo?${queryString}`;

方法2:

const result = `/dataPermission/queryWorkflowInfo?${Object.keys(params).map(key => `${key}=${params[key]}`).join('&')}`;

http://www.dtcms.com/a/343062.html

相关文章:

  • 【LeetCode题解】LeetCode 240. 搜索二维矩阵 II
  • 2025图表制作完全指南:设计规范、工具选型与行业案例
  • sqli-labs通关笔记-第60关 GET字符型报错注入(双引号括号闭合 限制5次探测机会)
  • 打开或者安装Navicat时出现Missing required library libcurl.dll,126报错解决方法(libmysql_e.dll等)
  • Google Chrome V8 <14.1.58 越界写入漏洞
  • Shell 脚本条件测试
  • Chrome/360 浏览器扩展深度解析:内置扩展与普通扩展的实现机制对比
  • 智能求职推荐系统演示说明
  • 亚马逊长尾关键词发掘:从人工苦力到智能闭环的进化之路
  • 零成本加速:EdgeOne免费套餐3分钟接入指南
  • 15-day12LLM结构变化、位置编码和投机采样
  • 带宽评估(二)lossbase v1
  • 【音视频】GOP 的设置和分析
  • C++ 单例模式学习
  • Spark读取MySQL数据库表
  • CSS【详解】性能优化
  • 什么是区块链?从比特币到Web3的演进
  • 深入浅出集成学习:从理论到实战,解锁机器学习 “集体智慧”
  • 新的 SHAMOS MacOS 窃取程序利用单行终端命令攻击用户
  • OceanBase 分区裁剪(Partition Pruning)原理解读
  • python + unicorn + xgboost + pytorch 搭建机器学习训练平台遇到的问题
  • Spring Boot集成腾讯云人脸识别实现智能小区门禁系统
  • windows无法访问某个服务器共享文件夹
  • linux中ctype.h字符判断函数实现原理
  • linux中的iptables的简介与常用基础用法
  • springboot人事管理系统源码和论文
  • Python编程练习100例(含答案)
  • HTTP 与 HTTPS:网络通信幽径上的安全秘钥
  • Promise详解:Promise解决ajax回调嵌套问题
  • system\core\init\init.cpp----LoadBootScripts()解析init.rc(2)