足球直播
足球直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
足球直播
足球直播
搜狗输入法
搜狗输入法
快连
快连
快连
快连下载
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
搜狗输入法
搜狗输入法
quickq下载
quickq官网
JSON格式字符串的书写指南与实例解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读、易解析的特性,成为前后端数据交互、配置文件存储等场景的主流选择,本文将从JSON的基本结构、语法规则、常见场景出发,结合实例详细讲解JSON格式字符串的书写方法,并总结常见错误避免技巧。
JSON的基本结构:两种核心形式
JSON格式字符串本质上是一个文本字符串遵循JSON规范,核心结构分为两种:对象(Object)和数组(Array),其他数据类型(如字符串、数字、布尔值等)则作为这两种结构的“值”存在。
对象(Object):用“键值对”存储数据
对象以开头,以结尾,内部由多个“键值对”(Key-Value Pair)组成,键值对之间用逗号分隔。
- 键(Key):必须是字符串,必须用双引号包裹(不能用单引号)。
- 值(Value):可以是多种数据类型(字符串、数字、布尔值、null、对象或数组)。
基本语法:
{
"键1": 值1,
"键2": 值2,
"键3": {
"嵌套键": "嵌套值"
}
}
数组(Array):用“有序列表”存储数据
数组以[开头,以]内部由多个值组成,值之间用逗号分隔,数组的值可以是任意JSON数据类型(包括对象或其他数组)。
基本语法:
[
值1,
值2,
{
"键": "数组中的对象值"
},
[1, 2, 3]
]
JSON支持的数据类型及书写规则
JSON对数据类型有严格限制,以下是常见类型的书写规范:
字符串(String)
- 必须用双引号包裹(不能用单引号或反引号
`)。 - 支持转义字符,如换行符
\n、引号\"、反斜杠\\等。
示例:
"name": "张三", "address": "北京市朝阳区\"望京\"街道\nA座1001室"
数字(Number)
- 不分整数、浮点数,统一用数字表示(无需区分类型)。
- 不能有前导零(除0本身外),如
01是错误的,应写为1。 - 支持科学计数法(如
5e3表示1500),但不支持NaN、Infinity等特殊值。
示例:
"age": 25, "price": 99.99, "scientific": 6.022e23
布尔值(Boolean)
- 仅支持
true和false(全小写,首字母不能大写)。
示例:
"isStudent": true, "isActive": false
null
- 表示“空值”,仅支持小写的
null(不能是NULL、Null或)。
示例:
"middleName": null
对象与数组(嵌套结构)
对象和数组可以相互嵌套,实现复杂数据结构的表达。
示例(嵌套对象):
{
"user": {
"id": 1001,
"name": "李四",
"contact": {
"email": "lisi@example.com",
"phone": "13800138000"
}
}
}
示例(嵌套数组):
{
"courses": [
{"name": "数学", "score": 95},
{"name": "英语", "score": 88},
{"name": "物理", "score": null}
]
}
JSON格式字符串的完整实例
结合以上规则,我们通过几个实际场景展示JSON格式字符串的书写方法。
实例1:用户信息(对象结构)
{
"userId": 10086,
"username": "wangwu",
"profile": {
"nickname": "王五",
"age": 30,
"gender": "男",
"avatar": "https://example.com/avatar.jpg"
},
"tags": ["编程", "摄影", "旅行"],
"isVip": true,
"balance": null
}
实例2:商品列表(数组结构)
[
{
"id": "P001",
"name": "无线蓝牙耳机",
"price": 299.00,
"stock": 100,
"specs": ["黑色", "白色", "蓝色"]
},
{
"id": "P002",
"name": "机械键盘",
"price": 599.00,
"stock": 50,
"specs": ["青轴", "红轴"],
"discount": 0.9
}
]
实例3:复杂嵌套(对象+数组混合)
{
"projectName": "电商平台重构",
"team": [
{
"name": "赵六",
"role": "前端开发",
"skills": ["React", "TypeScript", "JSON"]
},
{
"name": "钱七",
"role": "后端开发",
"skills": ["Java", "MySQL", "Redis"]
}
],
"config": {
"database": {
"host": "localhost",
"port": 3306,
"tables": ["user", "product", "order"]
},
"features": ["支付", "物流", "评价"],
"isDebug": false
}
}
书写JSON格式字符串的常见错误
初学者在书写JSON时容易因语法不规范导致解析失败,以下是高频错误及规避方法:
键未用双引号包裹(或用单引号)
// 错误:键用单引号
{'name': '张三'}
// 错误:键无引号
{name: '张三'}
// 正确:键必须用双引号
{"name": "张三"}
字符串值用单引号或无引号
// 错误:字符串值用单引号
{"name": '张三'}
// 错误:字符串值无引号
{name: 张三}
// 正确:字符串值必须用双引号
{"name": "张三"}
末尾多逗号
// 错误:最后一个键值对后有多余逗号
{"name": "张三", "age": 25,}
// 错误:数组末尾有多余逗号
[1, 2, 3,]
// 正确:最后一个元素后无逗号
{"name": "张三", "age": 25}
[1, 2, 3]
使用JSON不支持的数据类型
// 错误:使用undefined
{"result": undefined}
// 错误:使用函数
{"sayHello": function() {console.log("hi")}}
// 错误:使用日期对象(需转为字符串)
{"birthday": new Date("1990-01-01")} // 正确应为:"birthday": "1990-01-01"
// 正确:仅支持JSON原生类型
{"result": null, "sayHello": "hi", "birthday": "1990-01-01"}
嵌套结构未正确闭合
// 错误:对象未闭合
{"name": "张三", "age": 25
// 错误:数组未闭合
[1, 2, 3, {
// 正确:所有结构完整闭合
{"name": "张三", "age": 25}
[1, 2, 3]
如何验证JSON格式字符串是否正确?
书写完成后,可通过以下方式验证JSON格式是否合法:
- 在线工具:使用JSONLint(https://jsonlint.com/)等在线校验工具,粘贴字符串即可检测语法错误。
- 代码验证:在JavaScript中,使用
JSON.parse()尝试解析——若解析失败(抛出SyntaxError),则格式错误。try { const jsonStr = '{"name": "张三", "age": 25}'; const obj = JSON.parse(jsonStr); console.log(obj); // 解析成功:输出 { name: '



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