JS 数组添加 JSON 数据与 JSON 字符串转数组全解析(附实战代码)

🕒 2026-01-04 16:09:02
📁 JSON学习教程
作者:JSONLA小编

  在前端数据处理场景中,JSON 与数组的组合使用是高频需求 —— 无论是批量存储用户信息、解析后端返回的结构化数据,还是组装复杂的列表渲染数据,都离不开 “向数组添加 JSON 格式数据” 和 “将 JSON 字符串转换为数组” 这两个核心操作。本文基于 ECMAScript 2024 规范,结合实战代码案例,详细拆解这两类操作的实现逻辑、注意事项及安全优化方案,所有案例均保留原始业务代码结构,确保贴合实际开发场景。

一、JS 数组添加 JSON 数据:两种核心实现方式

首先明确核心概念:JS 中并无 “JSON 数据类型”,我们常说的 “JSON 数据” 本质是符合 JSON 语法规范的 JS 对象(键值对结构)。向数组添加这类数据的核心是通过数组push()方法,将构造好的 JSON 格式对象插入数组,根据对象构造方式的不同,衍生出两种主流方案。

1. 方案一:循环遍历构造对象并批量添加

适用于从现有数组中提取数据,批量组装成指定 JSON 结构的对象数组(如乘客信息、用户列表等场景)。

  

  • · 先初始化空数组personInfo,通过for循环遍历源数组_STAGE.passengerInfoArray;

    · 每次循环内构造单个 JSON 对象person,包含v和text两个字段,值均为遍历到的乘客姓名;

    · 调用数组push()方法(ECMAScript v3 规范定义,所有现代浏览器兼容),将对象添加到personInfo数组尾部,最终形成 JSON 对象数组。

2. 方案二:先构造独立对象再添加

适用于单条 JSON 数据的组装与添加(如单个乘客的类型、价格信息)。  

  • 先创建空对象passengerInfo,通过 “对象。字段名” 的方式逐个赋值,灵活组装 JSON 结构;
  • 再通过push()方法将完整的 JSON 对象添加到目标数组_STAGE.passengerInfoArray,适合非批量、动态赋值的场景;
  • 优势在于可按需添加任意字段,无需提前确定结构,适配多变的业务数据需求。

二、JSON 字符串转换为数组:解析方法与安全优化

后端返回的 JSON 数据本质是字符串类型,需转换为 JS 可操作的数组 / 对象后才能使用。早期常用eval()函数解析,现代开发中更推荐原生JSON.parse()(安全性更高),以下结合实战案例详解两种方式。

1. 基础实现:eval () 函数解析 JSON 字符串

eval()函数可将字符串作为 JS 代码执行,能解析 JSON 对象、JSON 数组、嵌套数组等多种格式的字符串,是早期前端解析的主流方式,以下保留原始业务代码并补充解析逻辑:  

  • 解析单个 JSON 对象字符串时,需用()包裹字符串(如eval('('+t+')')),避免 JS 将{}识别为代码块而非对象;
  • 解析数组格式字符串(如t2、t3)时,可直接传入字符串,无需额外包裹;
  • 缺点:eval()会执行字符串中的任意 JS 代码,若数据来源不可信(如用户输入、第三方接口),存在 XSS 注入风险,仅适用于内部系统或可信数据源。


相关推荐

正在加载... ...