JSON数组格式怎么写?从基础到实例,一篇
JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其易读易写的特性,成为前后端数据交互的“通用语言”,而JSON数组作为JSON中存储多个有序值的核心结构,在实际开发中无处不在(如API返回的列表数据、前端批量提交的表单数据等),本文将从基础概念出发,结合实例和常见场景,带你彻底搞懂JSON数组的格式规范与使用技巧。
JSON数组是什么?—— 核心概念
JSON数组是JSON中的一种数据类型,用于表示值的有序集合,它类似于编程语言中的数组或列表,核心特点是:
- 有序性:元素按顺序排列,通过索引(从0开始)访问;
- 多类型支持:元素可以是简单值(字符串、数字、布尔值、null),也可以是复杂结构(JSON对象、嵌套数组);
- 动态长度:元素数量可动态增减。
JSON数组的基础格式规范
JSON数组的格式有严格的语法规则,必须严格遵守,否则会导致解析失败,以下是核心规范及示例:
基本语法结构
JSON数组用方括号 [] 包裹,元素之间用英文逗号 分隔,最后一个元素后面不能有逗号(否则会报错)。
示例:简单数组(仅包含简单值)
[ "苹果", "香蕉", "橙子" ]
[]:表示数组开始和结束;"苹果"、"香蕉"、"橙子":数组元素(字符串类型,需用双引号 包裹);- 分隔元素,注意最后一个元素
"橙子"后面没有逗号。
元素可以是多种类型
JSON数组的元素不仅限于字符串,还可以是数字、布尔值、null,甚至是JSON对象或嵌套数组。
示例:混合类型数组
[
100, // 数字
true, // 布尔值
null, // null
"2023-10-01", // 字符串
{ // JSON对象(作为元素)
"name": "张三",
"age": 25
},
[1, 2, 3] // 嵌套数组(作为元素)
]
嵌套数组:数组中的数组
JSON数组可以多层嵌套,形成“二维数组”“三维数组”等,常用于表示表格数据或树形结构。
示例:二维数组(类似表格的行数据)
[ ["姓名", "年龄", "职业"], ["李四", "30", "工程师"], ["王五", "25", "设计师"] ]
常见错误格式(避坑指南)
以下是初学者容易犯的错误,需特别注意:
❌ 错误1:元素使用单引号
['苹果', '香蕉'] // 错误:JSON要求字符串必须用双引号
✅ 正确写法:
["苹果", "香蕉"]
❌ 错误2:最后一个元素后有多余逗号
["苹果", "香蕉", "橙子",] // 错误:末尾逗号会导致解析失败
✅ 正确写法:
["苹果", "香蕉", "橙子"]
❌ 错误3:使用未定义的字面量
[undefined, NaN] // 错误:JSON不支持 undefined 和 NaN
✅ 正确写法(用 null 代替 undefined):
[null, null]
JSON数组的实际应用场景
JSON数组在开发中应用广泛,以下是几个典型场景及示例:
API返回列表数据
后端接口返回用户列表、商品列表等时,常用JSON数组封装数据。
示例:用户列表API返回数据
{
"code": 200,
"message": "success",
"data": [
{
"id": 1,
"username": "user1",
"email": "user1@example.com"
},
{
"id": 2,
"username": "user2",
"email": "user2@example.com"
}
]
}
data字段是一个JSON数组,每个元素是一个用户对象(包含id、username、email)。
前端批量提交数据
前端表单提交多个商品ID、多选框选项等时,通过JSON数组传递数据。
示例:批量删除商品时提交的ID数组
[101, 102, 103, 104]
后端可直接解析该数组,遍历删除对应ID的商品。
配置文件中的多值配置
在项目配置文件(如config.json)中,JSON数组常用于存储多值配置(如允许的文件类型、默认主题等)。
示例:图片上传配置
{
"allowedImageTypes": [".jpg", ".png", ".gif"],
"maxFileSize": 5242880,
"defaultTheme": "light"
}
不同语言中JSON数组的处理示例
JSON数组的格式后,还需了解如何在编程语言中解析或生成它,以下是常见语言的示例:
JavaScript
- 生成JSON数组:通过
JSON.stringify()将JS数组转为JSON字符串; - 解析JSON数组:通过
JSON.parse()将JSON字符串转为JS数组。
// 1. 生成JSON数组
const jsArray = ["苹果", "香蕉", { name: "橙子" }];
const jsonString = JSON.stringify(jsArray);
console.log(jsonString); // 输出: ["苹果","香蕉",{"name":"橙子"}]
// 2. 解析JSON数组
const parsedArray = JSON.parse(jsonString);
console.log(parsedArray[2].name); // 输出: "橙子"
Python
- 生成JSON数组:通过
json.dumps()将Python列表转为JSON字符串; - 解析JSON数组:通过
json.loads()将JSON字符串转为Python列表。
import json
# 1. 生成JSON数组
python_list = ["苹果", "香蕉", {"name": "橙子"}]
json_string = json.dumps(python_list)
print(json_string) # 输出: ["\u82f9\u679c", "\u9999\u8549", {"name": "\u67d0\u5b50"}]
# 2. 解析JSON数组
parsed_list = json.loads(json_string)
print(parsed_list[2]["name"]) # 输出: "橙子"
Java
- 生成JSON数组:使用
JSONArray(如org.json库或Jackson/Gson库); - 解析JSON数组:通过
JSONArray.parse()或库方法解析。
import org.json.JSONArray;
public class JsonArrayExample {
public static void main(String[] args) {
// 1. 生成JSON数组
JSONArray jsonArray = new JSONArray();
jsonArray.put("苹果");
jsonArray.put("香蕉");
jsonArray.put(new JSONObject().put("name", "橙子"));
System.out.println(jsonArray); // 输出: ["苹果","香蕉",{"name":"橙子"}]
// 2. 解析JSON数组
String jsonString = "[\"苹果\",\"香蕉\",{\"name\":\"橙子\"}]";
JSONArray parsedArray = new JSONArray(jsonString);
System.out.println(parsedArray.getJSONObject(2).getString("name")); // 输出: "橙子"
}
}
JSON数组格式要点回顾
| 要点 | 规范说明 |
|---|---|
| 定义 | 有序的值的集合,用 [] 表示 |
| 元素类型 | 支持字符串、数字、布尔值、null、JSON对象、嵌套数组 |
| 分隔符 | 元素间用英文逗号 分隔,最后一个元素后无逗号 |
| 字符串格式 | 必须用双引号 包裹,不能用单引号 |
| 禁用类型 | 不支持 undefined、NaN、函数等 |
| 嵌套 | 可多层嵌套,用于复杂数据结构(如表格、树形数据) |
JSON数组是JSON数据结构中的“基础模块”,无论是简单的列表数据,还是复杂的嵌套结构,都离不开它的支持,只要牢记上述格式规范,结合实际场景多练习,就能熟练JSON数组的写法,为前后端数据交互打下坚实基础!



还没有评论,来说两句吧...