前言:

        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.pswp.cn/diannao/96416.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96416.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96416.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

龙虎榜——20250822

上证指数今天继续创新高收中阳线,量能维持在5天均量线附近,目前均线多头强势的走势,小级别也未出现反转信号,上涨趋势不要轻易看空。深证指数今天延续强势的走势,大涨收光头光脚的阳线,目前均线多头排列&am…

3维模型导入到3Dmax中的修改色彩简单用法----第二讲

目录回顾1 补充信息*stp导出没有颜色怎么办?*2 3Dmax的使用如果颜色丢失了怎么办呢?怎么实现一零件上多个色彩呢?怎么将零件绑到一起呢?怎么将三角形的面变成光滑曲面呢?回顾 上一讲,我们简单的说了一下&a…

智慧农业新基建:边缘计算网关在精准农业中的落地实践案例

智慧农业新基建:边缘计算网关在精准农业中的落地实践案例传统农业生产中,水肥管理依赖经验判断,往往造成资源浪费和产量不稳定;同时,恶劣的自然环境也给农业生产带来诸多挑战。而蓝蜂边缘计算网关在精准农业中的应用&a…

llm操控solidworks 画立方体 deepseek

deepseek接入solidowrks画立方体用eval方法链接llm和solidworks pythonwin32接口 离好的效果还差一个有脑子会生成复杂命令序列的ai 参考 基于Python的Solidworks二次开发方法_selectbyray-CSDN博客 Welcome - 2025 - SOLIDWORKS API Help 仓库 llm_sw: llm链接solidworks…

MySQL事务及原理详解

MySQL 事务 事务是一组不可分割的操作集合,这些操作要么同时成功提交,要么同时失败回滚。 acid事物的四大特性 原子性 最小工作单元,要么同时成功,要么同时失败。 例如A转账300给B,A账户-300与B账户300必须满足操作原子性&#xf…

Flutter上手记:为什么我的按钮能同时在iOS和Android上跳舞?[特殊字符][特殊字符]

文章目录🔥 先解决灵魂拷问:凭啥选Flutter?🧱 解剖Flutter:它肚子里藏着什么黑科技?三层蛋糕架构 🎂状态管理?江湖门派大战! 🥋🛠 真实项目暴击&a…

单片 、物联网、51单片机、软硬件之基于STM32与蓝牙的仓储管控系统的设计与实现/基于物联网的仓库管理系统

单片 、物联网、51单片机、软硬件之基于STM32与蓝牙的仓储管控系统的设计与实现/基于物联网的仓库管理系统

Product Hunt 每日热榜 | 2025-08-22

1. Mocke 标语:模拟邮件营销:在不发起活动的情况下了解你的回复率 介绍:Mocke AI代理模拟运行电子邮件营销活动,并在一分钟内返回结果,包括邮件的打开率、回复率和退订率。它还会揭示每个潜在客户为何未打开邮件、报…

基于Java+SpringBoot+Vue+HTML5电影评论网站系统(源码+LW+调试文档+讲解等)/电影评论/网站系统/电影/评论/网站/系统/影评网站/电影网站/评论系统/电影评论系统

博主介绍 💗博主介绍:✌全栈领域优质创作者,专注于Java、小程序、Python技术领域和计算机毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2025-2026年最新1000个热门Java毕业设计选题…

家用电器,让现代家庭生活更美好

在现代家庭中,家用电器早已不再是冰冷的机器,而是成为了我们生活中不可或缺的一部分。它们以科技之名,融入我们的日常,让生活变得更加便捷、舒适和美好。 清晨,当第一缕阳光透过窗帘,智能咖啡机已经为您准备…

RabbitMQ延时队列的两种实现方式

目录 一、延时插件实现 1、版本要求 2、为运行新容器时安装 3、为已运行的容器安装 4、验证安装 5、代码编写 1. 配置类 2. 生产者 3. 消费者 二、死信队列实现 1、代码编写 1. 配置类 2. 生产者 3. 消费者 三、踩坑记录 1、发送消息失败 2、消息过期后未能转…

深度学习在股票量化中的应用

深度学习在股票量化中的具体应用:从时间序列预测到Alpha挖掘深度学习并非量化交易的银弹,但它是一套强大的工具集,能够解决传统量化方法难以处理的复杂问题。其核心价值在于从海量、高维、非结构化的数据中自动提取有效特征并发现非线性关系。…

Web 安全之 HTTP 响应截断攻击详解

这不是危言耸听。 在一次安全审计中,某电商平台发现: 用户访问首页后,自动跳转到了赌博网站。 但代码没被篡改,服务器没被入侵,日志一切正常。 最终追查发现—— 罪魁祸首,竟是一个 %0d%0a(回车…

Envoy配置ext_proc

介绍 本文将使用gateway api inference extension作为envoy的ext_proc服务端 启动Ext_Proc 基于Gateway API Inference Extension https://github.com/kubernetes-sigs/gateway-api-inference-extension.git 先clone代码到本地 git clone https://github.com/kubernetes-…

echarts关系图(Vue3)

基础版效果图&#xff1a;后期请求接口&#xff0c;接入数据即可用<template><div><v-chartref"vChartRef":option"option"style"width: 100%; height: 800px"></v-chart></div> </template><script lan…

【LeetCode】17. 电话号码的字母组合

文章目录17. 电话号码的字母组合题目描述示例 1&#xff1a;示例 2&#xff1a;示例 3&#xff1a;提示&#xff1a;解题思路算法分析问题本质分析回溯法详解组合生成过程可视化数字映射关系各种解法对比算法流程图边界情况处理时间复杂度分析空间复杂度分析关键优化点实际应用…

全文 part1 - DGEMM Using Tensor Cores, and Its Accurate and Reproducible Versions

摘要 本文提出了一种在 NVIDIA 图形处理器&#xff08;GPU&#xff09;的张量核心&#xff08;Tensor Cores&#xff0c;仅含 FP16、INT8 等 GEMM 计算功能&#xff09;上实现 FP64&#xff08;双精度&#xff0c;DGEMM&#xff09;和 FP32&#xff08;单精度&#xff0c;SGEMM…

Hexo 博客图片托管:告别本地存储,用 PicGo + GitHub 打造高速稳定图床

之前刚开始进行Hexo博客撰写&#xff0c;图片都保存在本地Hexo源文件目录&#xff08;source/images/&#xff09;文件夹&#xff0c;随着图片增多&#xff0c;管理起来压力增大&#xff0c;于是产生了使用图床&#xff0c;引入外链进行图片存储的想法 Pros and Cons 提升部署…

关于 VScode 无法连接 Linux 主机并报错 <未能下载 VScode 服务器> 的解决方案

1. 出现的情况 VScode 远程登录 Linux 主机, 出现一下报错:2. 检查方案 2.1 VScode 方面 菜单栏: 点击 <帮助> →\to→ 点击 <关于> 在出现的弹窗中记录 [提交: ] 之后的字符串 (暂且将该字符串命名为变量 $commit_id) 2.2 Linux 方面 使用 ssh or MobaXterm 远程登…

泛型与反射

也是重新温习了下泛型与反射,反射基本就是一些api理解即可,不过需要注意类加载器原理,而泛型则需要理解其设计思想,可以代替Object,更加灵活,可读性强。泛型泛型如果指定后,编译阶段就会检查,不让乱输其他类型,必须是引用类型; 如果不指定就默认Object// 如果指定泛型, 就必须存…