← 返回博客

如何在线校验 JSON 是否合法

2026-04-04 · 5 分钟阅读

什么样的 JSON 是合法的?

合法的 JSON 必须满足以下所有条件:整个文档是一个合法的 JSON 值(对象、数组、字符串、数字、布尔值或 null 之一);所有字符串(包括对象的键名)都用双引号括起来;没有多余的逗号(如数组或对象最后一个元素后的逗号);没有注释;括号/花括号完整配对;特殊字符已正确转义。

值得注意的是,合法的 JSON 与"有效的业务数据"是两回事——JSON 可以语法完全正确,但其中的字段值不符合业务规则(如年龄为负数),这需要 JSON Schema 验证来检查。

最常见的 JSON 语法错误

1. 末尾多余的逗号(Trailing Comma)— 这是最常见的错误,通常出现在从代码中复制 JSON 时:

// 错误 / Wrong:
{"name": "Alice", "age": 30,}

// 正确 / Correct:
{"name": "Alice", "age": 30}

2. 键名没有双引号(Unquoted Keys):

// 错误 / Wrong:
{name: "Alice"}

// 正确 / Correct:
{"name": "Alice"}

3. 使用了单引号

// 错误 / Wrong:
{'name': 'Alice'}

// 正确 / Correct:
{"name": "Alice"}

字符串中的特殊字符转义

JSON 字符串中,以下字符必须用反斜杠转义:双引号 \";反斜杠 \\;正斜杠 \/(可选);换行符 \n;回车符 \r;制表符 \t;Unicode 字符 \uXXXX

如果 JSON 字符串中包含未转义的特殊字符,会导致解析失败。例如,将多行文本存储为 JSON 字符串时,换行符必须转义为 \n,不能直接在字符串中包含实际换行。

在线验证工具的使用方法

  1. 打开在线 JSON 验证工具,将需要验证的 JSON 粘贴到输入区域。
  2. 工具通常在输入时实时进行验证,在编辑器中高亮显示有问题的部分。
  3. 如果 JSON 无效,查看错误提示:通常会显示"第 X 行第 Y 列出现意外的 token"等信息,定位到具体的错误位置。
  4. 根据错误信息修改对应位置,再次验证,直到通过。
  5. 验证通过后,工具通常会显示"Valid JSON",并可以选择进行格式化展示。

编程语言中的 JSON 验证

在代码中验证 JSON 最简单的方法是尝试解析它:

// JavaScript
function isValidJSON(str) {
  try {
    JSON.parse(str);
    return true;
  } catch (e) {
    return false;
  }
}

# Python
import json
def is_valid_json(s):
    try:
        json.loads(s)
        return True
    except json.JSONDecodeError:
        return False

对于 JSON Schema 验证,各语言都有成熟的库:JavaScript 有 ajv;Python 有 jsonschema;Java 有 networknt/json-schema-validator;Go 有 santhosh-tekuri/jsonschema

CI/CD 中的 JSON 验证自动化

在持续集成流水线中自动验证 JSON 文件是防止配置错误上线的有效手段。常见的 CI/CD JSON 验证方法:

JSONC 和 JSON5:带注释的 JSON 格式

标准 JSON 不支持注释,这对配置文件来说很不方便。为此出现了两种扩展格式:JSONC(JSON with Comments)是 VS Code 等工具使用的格式,在标准 JSON 基础上允许 ///* */ 注释,文件后缀通常是 .jsonc;JSON5 是更宽松的超集,额外支持注释、单引号字符串、末尾逗号等,设计目标是让 JSON 更人性化。

注意:JSONC 和 JSON5 是非标准扩展,不能被标准 JSON 解析器直接解析,需要专门的解析库,不应用于 API 数据交换,只适合配置文件场景。

立即免费使用相关工具

免费使用 →