FormatArc JSON 格式化器的运行结果FormatArc JSON 格式化器的运行结果
作者: FormatArc 编辑部发布日期: 2026-09-02更新日期: 2026-09-02

JSON 是什么?格式、语法、数据类型与实际用途(2026 入门)

如果你做过前端开发、调过 API,或者翻过 IDE 的设置文件,大概率已经和 JSON 打过不少交道了。但"JSON 到底是什么格式""它和 XML 有什么区别"这些问题,真正要自己解释的时候还是容易卡住。这篇文章从定义、语法、数据类型讲到实际用途和常见错误,帮你把 JSON 一次搞清楚。

JSON 是什么

JSON(JavaScript Object Notation)是一种让机器和人都能轻松读写的文本数据格式。名字里虽然有 JavaScript,但它不绑定任何特定语言——Python、Java、Go、PHP 等主流语言都能直接解析。

JSON 起源于 JavaScript 的对象字面量语法。2000 年代初,Douglas Crockford 把它整理成独立规范,后来由 IETF 以 RFC 8259在新标签页中打开 和 Ecma International 以 ECMA-404在新标签页中打开 的形式完成标准化。

当时占主导的数据交换格式是 XML,但标签嵌套写起来很啰嗦。JSON 用更少的字符表达同样的数据,解析也更轻量,这种简洁让它迅速铺满了整个 Web 生态。

拿到一段 JSON 想看结构对不对、或者想格式化后方便阅读,可以直接粘贴到 FormatArc 的 JSON 格式化器。整个处理在浏览器里完成,你输入的数据不会被发送到任何服务器。

与其他数据格式的区别

JSON 是数据格式家族里的一员。拿它和 XML、CSV、YAML 对比,定位就很清楚了:

格式主要用途特点
JSONAPI / 数据交换面向机器的严格规则,语法简洁、解析快
XML遗留系统 / SOAP冗长但支持命名空间、Schema 校验
CSV电子表格 / ETL纯表格结构,不支持嵌套
YAML配置文件人写起来舒服,但解析规则复杂

JSON 之所以成为首选,是因为它卡在"机器好处理"和"人也能看懂"这个平衡点上。主流语言的标准库都自带 JSON 解析器,跨语言互操作几乎没有额外成本。

JSON 基本语法

JSON 里能用的数据结构只有两种:对象和数组。

对象

用花括号 {} 包裹,键值对之间用冒号(:)连接,多对之间用逗号(,)分隔。键必须是双引号字符串。

{
  "name": "李明",
  "age": 30,
  "city": "北京"
}

数组

用方括号 [] 包裹,元素之间用逗号分隔。可以混排不同类型,但实际开发中通常保持同一类型。

["苹果", "香蕉", "橘子"]

数据类型的完整规则和嵌套结构的细节,参见 JSON 语法指南

JSON 的 6 种数据类型

JSON 能表达的数据类型正好是 6 种,规则和常见坑如下:

类型示例关键规则常见错误
字符串"hello"只用双引号单引号会报解析错误
数字423.14整数和浮点数不区分NaNInfinity、前导零不合法
布尔值truefalse全小写TrueTRUE 都不行
nullnull全小写Nonenil 不合法
对象{ "key": "value" }键必须双引号省略引号在 JS 里可以,JSON 里不行
数组[1, "a", null]有序,类型可混排最后一个元素后不能跟逗号

数字方面,整数、小数、科学计数法(6.626e-34)都可以直接写,不需要引号。NaNInfinity、前导零(007)会导致解析失败。

对象和数组可以自由嵌套,这种结构是 JSON 能表达复杂数据的核心原因:

{
  "user": {
    "name": "李明",
    "hobbies": ["读书", "跑步"],
    "address": {
      "city": "北京市",
      "district": "朝阳区"
    }
  }
}

JSON 的实际应用场景

Web API 数据交换

REST API 和 GraphQL 的响应格式,JSON 已经是事实标准。你用浏览器 fetch 请求一个接口,返回的几乎一定是 JSON。

配置文件

Node.js 的 package.json、TypeScript 的 tsconfig.json、VS Code 的 settings.json——开发工具的配置几乎都用 JSON。人看得懂,程序也好解析,这是它成为配置文件默认选择的原因。

数据存储与日志

MongoDB 等 NoSQL 数据库用 JSON 类似的二进制格式(BSON)存储文档。日志采集系统也常用 JSON Lines(每行一个 JSON 对象)记录结构化日志。

表格数据转换

你从电子表格导出 CSV,想喂给 API 或后端应用,通常要转成 JSON。两种格式结构差异不小,都理解一下用起来会顺手很多。

手写 JSON 时容易踩的坑

JSON 语法看起来简单,但手写时几个约束很容易忽略。

不能写注释

JSON 没有注释语法。///* */# 都不行。想在文件里留备注,只能加 "_comment" 之类的占位键,或者换用支持注释的格式(YAML、JSONC)。

不能有尾随逗号

最后一个元素后面不能有多余的逗号。这在 JavaScript 里合法,但 JSON 会直接报解析错误:

{
  "a": 1,
  "b": 2,
}

上面 "b": 2 后面的逗号必须删掉。

键必须加双引号

JavaScript 里可以写 { name: "李明" },但 JSON 里必须写 { "name": "李明" }

顶层只能有一个值

一份 JSON 文档的顶层只能是一个对象或一个数组,不能并排放两个。

格式乱了、不确定有没有语法错误的时候,把内容丢进 JSON 格式化器 点一下就能同时完成排错和美化。

常见问题

JSON 文件用什么打开?

任何文本编辑器都能打开。VS Code 这类 IDE 还会做语法高亮。想看格式化后的结构,粘贴到 FormatArc 的 JSON 格式化器最方便,不用装任何东西。在线美化、jq、JSON.stringify 三种方法怎么选,参见 JSON 排版工具

JSON 和 JavaScript 对象是一回事吗?

不是。JavaScript 对象是内存里的活数据结构,JSON 始终是文本字符串。JavaScript 里允许的那些写法(省略键引号、定义函数、用 undefined、写尾随逗号),在 JSON 里基本都禁止。JSON.parse 把文本变成对象,JSON.stringify 把对象变成文本。

总结

  • JSON 是一种语言无关的轻量数据交换格式
  • 核心结构是对象({})和数组([]
  • 数据类型共 6 种:字符串、数字、布尔值、null、对象、数组
  • Web API 响应和配置文件是最高频的使用场景
  • 不能写注释、不能有尾随逗号、键必须双引号——手写时注意
  • 格式化和语法校验用 JSON 格式化器一键完成