【JS】转换多个json结构的字符串为数组

文章目录

背景:今天遇到接口返回的 EventStream 结构的数据,由于http 流式传输时,可能会分段,所以导致本该每次返回一段json数据结构的字符串,变成了多个json数据结构的字符串拼接在了一起。

  • 例如:
'{a: 1}{a: 2}{a: 3}'
  • 现在想要得到这种的:
[{a: 1}, {a: 2}, {a: 3}]
  • 函数实现:支持深层嵌套的json结构
function parseMultiJson(jsonStr) {const jsonArr = [];let startIndex = 0;let endIndex = 0;while (startIndex < jsonStr.length) {// 找到一个 JSON 对象的开始位置startIndex = jsonStr.indexOf('{', startIndex);if (startIndex === -1) {break;}// 找到一个 JSON 对象的结束位置let openBrackets = 1;endIndex = startIndex + 1;while (openBrackets > 0 && endIndex < jsonStr.length) {if (jsonStr[endIndex] === '{') {openBrackets++;} else if (jsonStr[endIndex] === '}') {openBrackets--;}endIndex++;}// 将该 JSON 对象解析为一个对象,并添加到数组中const json = jsonStr.substring(startIndex, endIndex);jsonArr.push(JSON.parse(json));// 更新下一个 JSON 对象的开始位置startIndex = endIndex;}return jsonArr;
}
  • 效果:
const arr = parseMultiJson('{a: 1}{a: 2}{a: 3}')
console.log(arr)	// [{a: 1}, {a: 2}, {a: 3}]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/825347.shtml

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

相关文章

使用vite从头搭建一个vue3项目(四)使用axios封装request.js文件,并使用proxy解决跨域问题

目录 一、创建request.js文件二、创建axios实例三、创建请求、响应拦截器四、使用 request.js&#xff0c;测试接口&#xff1a;https://api.uomg.com/api/rand.qinghua1、调取接口代码书写2、注意&#xff08;跨域问题&#xff09; axios 的二次封装有三个要点&#xff1a; 创…

孩子成绩差怎么办?建议家长看一看

孩子的教育问题&#xff0c;永远是家长最关心的一件事&#xff0c;望子成龙&#xff0c;望女成凤&#xff0c;是每一个家庭、每一个家长的向往和追求。在以分数定输赢的大环境下&#xff0c;学习成绩很大程度上决定了一个孩子的未来。孩子学习成绩差&#xff0c;怎么办&#xf…

金三银四面试题(二十一):代理模式知多少?

代理模式在软件开发中是一个非常重要的设计模式之一。它提供了一种灵活的方式来控制和管理对象的访问&#xff0c;并且可以在访问对象前后执行额外的操作。 什么是代理模式 代理模式是一种结构型设计模式&#xff0c;其目的是为其他对象提供一种代理以控制对这个对象的访问。…

【智能算法】霸王龙优化算法(TROA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2023年&#xff0c;VSDM Sahu等人受到霸王龙狩猎行为启发&#xff0c;提出了霸王龙优化算法&#xff08;Tyrannosaurus Optimization Algorithm, TROA&#xff09;。 2.算法原理 2.1算法思想 TR…

【系统分析师】系统规划

文章目录 1、项目的机会选择2、可行性分析3、成本效益分析3.1 基本概念3.2 盈亏临界分析3.3 净现值分析3.4 投资回收期 截图&#xff1a;希赛讲义 视频&#xff1a;B站 系统规划对应的是 立项 阶段 1、项目的机会选择 2、可行性分析 3、成本效益分析 3.1 基本概念 例题 3.2 盈…

大厂Redis高频面试题及参考答案(持续更新)

描述一下Redis的基本工作原理。 Redis(Remote Dictionary Server)是一个开源的,基于内存的高性能键值对数据库。它的基本工作原理可以分为以下几个方面: 内存存储:Redis将所有数据存储在内存中,这使得数据的读写速度非常快,可以支持每秒数十万次的读写操作。 数据持久化…

Linux应用开发-进程间通信-管道

文章目录 管道特点匿名管道匿名管道的创建实现步骤 有名管道Linux系统命令实现C语言实现写入读取 管道 管道中的数据只能单向流动&#xff0c;也就是半双工通信&#xff0c;如果想实现相互通信&#xff08;全双工通信&#xff09;&#xff0c;我们需要创建两个管道。 向管道中…

安装Selenium和WebDriver

幻灯片4&#xff1a;安装Selenium和WebDriver 安装Python环境 步骤一&#xff1a;下载Python安装包 访问Python官方网站&#xff08;https://www.python.org/downloads/&#xff09;&#xff0c;根据您的操作系统选择对应的Python安装包进行下载。请确保下载最新稳定版本的P…

边缘计算智能分析网关V4地面垃圾AI检测算法介绍及场景应用

在传统的卫生监管场景中&#xff0c;无法及时发现地面遗留的垃圾&#xff0c;通过人工巡逻的方式需要大量的人力、物力和时间&#xff0c;而且效率不高&#xff0c;并存在一定的滞后性&#xff0c;而采用地面垃圾AI检测算法则可以大大提高监管效率。 TSINGSEE青犀AI智能分析网…

macos、windows 思维导图 xmind pro

思维导图单机 Pro版&#xff1a; mac: XMind Pro 2024 for Mac v24.03.04745 直接拖动安装使用 windows: XMind思维导图 2024 V24.01.14362 安装教程&#xff1a;https://www.jb51.net/softs/876712.html https://www.jb51.net/softs/879963.html#downintro2

windows10安装Tensorflow-gpu 2.10.0

windows10安装Tensorflow-gpu 2.10.0 本文主要目的是 从0开始演示 在windows10 平台安装Tensorflow-gpu 2.10.0。 Tensorflow-gpu 2.10.0 之后的版本&#xff0c;不再支持这样的安装方式&#xff0c;如果有需要&#xff0c;请参考wsl安装ubuntu的方式&#xff0c;进行安装。 …

短视频矩阵源头====技术文档交付

短视频矩阵源头技术文档交付 搭建短视频矩阵系统源码需要以下步骤&#xff1a; 1. 确定系统需求和功能&#xff1a;明确系统需要支持哪些功能&#xff0c;例如短视频的上传、存储、播放、分享、评论、点赞等。 2. 选择合适的编程语言和框架&#xff1a;根据需求选择合适的编程…

2015NOIP普及组真题 2. 扫雷游戏

线上OJ&#xff1a; 一本通&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1970 核心思想&#xff1a; 这是一道基础的 dfs模板题&#xff0c;只需要对每个点判断四周的8个点是否有雷即可&#xff0c;不需要在dfs中继续dfs。 step1. 如果是*&#xff0c;则直接…

力扣1144---递减元素使数组呈锯齿状(Java、Python、模拟)

目录 题目描述&#xff1a; 思路描述&#xff1a; 代码&#xff1a; Java&#xff1a; Python&#xff1a; 题目描述&#xff1a; 给你一个整数数组 nums&#xff0c;每次 操作 会从中选择一个元素并 将该元素的值减少 1。 如果符合下列情况之一&#xff0c;则数组 A 就是 …

存储人视角:人工智能AI + 大模型

原文来自于知乎存储专栏&#xff1a; 存储人视角&#xff1a;人工智能AI 大模型 前沿 我的角色 背景 AI 出场 效果 一个宠娃狂魔 娃喜爱并有奥特曼玩具 她的奥特曼玩具会跳舞了 娃对我的崇拜和爱又多了一分......amazing 杭州网商路艾弗森 球队需要制作LOGO 形象生动…

【办公软件word小技巧】如何一键提取word中的图片 几十张 几百张均可一键提取

在日常生活和工作中&#xff0c;我们经常会遇到需要从Word文档中提取图片的情况。无论是为了单独保存这些图片&#xff0c;还是为了在其他地方使用它们&#xff0c;一键提取Word中的图片都是一个非常实用的技能。提取Word文件中的图片并不是一件复杂的事情&#xff0c;只要掌握…

照片jpg格式小于50kb怎么弄?jpg压缩到指定大小

我们经常需要处理大量的图片&#xff0c;特别是在分享到社交媒体时&#xff0c;然而&#xff0c;图片文件的大小常常成为困扰我们的问题&#xff0c;尤其是当我们的设备存储空间有限时。有些平台甚至会需要将图片压缩到50kb大小&#xff0c;那么&#xff0c;如何有效地压缩图片…

力扣日记4.18-【动态规划篇】416. 分割等和子集

力扣日记&#xff1a;【动态规划篇】416. 分割等和子集 日期&#xff1a;2024.4.18 参考&#xff1a;代码随想录、力扣 416. 分割等和子集 题目描述 难度&#xff1a;中等 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使…

WAF攻防-权限控制代码免杀异或运算变量覆盖混淆加密传参

知识点 1、脚本后门基础&原理 2、脚本后门查杀绕过机制 3、权限维持-覆盖&传参&加密&异或等 章节点&#xff1a; WAF绕过主要集中在信息收集&#xff0c;漏洞发现&#xff0c;漏洞利用&#xff0c;权限控制四个阶段。 代码表面层免杀-ASP&PHP&JSP&a…

电商数据接口开发|淘宝商品接口|天猫商品接口|京东商品接口|拼多多商品接口|API接口申请指南

电商数据接口开发涉及到多个电商平台&#xff0c;包括淘宝、天猫、京东和拼多多等。这些平台都提供了丰富的API接口&#xff0c;以便开发者能够获取商品信息、订单数据等&#xff0c;从而构建出各种电商应用和服务。 1.请求方式&#xff1a;HTTP POST GET &#xff08;复制薇&…