JSON格式化工具
等待输入
等待处理

JSON知识点速查

1. 基本概念

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。

JSON的两种结构:

  • 键值对集合(对象):用 {"key": "value"} 表示
  • 有序的值列表(数组):用 [value1, value2] 表示

2. 支持的数据类型

  • 字符串:必须用双引号包裹,如 "hello"
  • 数字:整数或浮点数,如 423.14
  • 布尔值truefalse
  • 数组:有序值的集合,如 [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)