等待输入
JSON知识点速查
1. 基本概念
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
JSON的两种结构:
- 键值对集合(对象):用
{"key": "value"}表示 - 有序的值列表(数组):用
[value1, value2]表示
2. 支持的数据类型
- 字符串:必须用双引号包裹,如
"hello" - 数字:整数或浮点数,如
42或3.14 - 布尔值:
true或false - 数组:有序值的集合,如
[1, 2, 3] - 对象:键值对集合,如
{"name": "JSON"} - null:表示空值,如
null
3. 语法规则
- 数据在键值对中,键名必须用双引号包裹
- 数据由逗号分隔
- 对象用
{}表示 - 数组用
[]表示 - 字符串必须用双引号,不能使用单引号
- 不允许使用注释
- 末尾不能有多余的逗号
正确示例:
{
"name": "示例",
"version": 1.0,
"active": true,
"features": ["格式化", "验证"],
"config": null
}
错误示例(常见问题):
{
'name': '错误示例', // 错误:键名使用单引号
version: 1.0, // 错误:键名未用引号
"active": true,
"features": ["格式化", "验证"],
"config": null, // 错误:末尾多余逗号
}
4. 常见问题与解决方案
- 解析错误:检查是否有多余逗号、单引号使用、未闭合的括号等
-
日期处理:JSON没有日期类型,通常用ISO字符串表示(如
"2023-10-16T12:00:00Z") -
特殊字符:需要转义,如
\\"表示双引号,\\n表示换行 - 大数字问题:超过JavaScript安全整数范围的数字可能会丢失精度
5. 与JavaScript对象的区别
- JSON是字符串,是数据交换格式;JavaScript对象是内存中的数据结构
- JSON键名必须用双引号;JavaScript对象可以不用引号或用单引号
- JSON的值不能是函数、正则表达式等特殊对象
- JSON不能包含注释;JavaScript对象可以
- 转换方法:
- JSON字符串转对象:
JSON.parse(jsonString) - 对象转JSON字符串:
JSON.stringify(object)
- JSON字符串转对象: