crazycloudcc@blog:~/tools/json — zsh — 80×24
--:--:--···
crazycloudcc@blog:~/tools/json$ pwd
/home/crazycloudcc/blog/tools/json
> cd ./tools/json

~/tools / json

JSON 格式化与校验

在浏览器里格式化、压缩并校验 JSON。输入不上传服务器。

本地计算 · 无账号

这是什么

JSON 是前后端交换结构化数据时最常见的文本格式。本页在浏览器里做格式化、压缩与语法校验:粘贴一段对象或数组,立刻看出层级,也能压成单行塞进配置或接口。处理全程在你的标签页完成,正文不会上传到 crazycloud.cc。

原理

合法 JSON 是一棵由对象、数组、字符串、数字、布尔与 null 组成的树。解析器按 RFC 8259 扫描记号:对象键必须是双引号字符串,元素之间用逗号分隔,最后一个元素后不能再跟逗号。格式化只是把同一棵树用缩进重新打印;压缩则去掉空白。浏览器里通常用 JSON.parse 建树、JSON.stringify 序列化——二者失败时会抛出 SyntaxError,本页把错误信息展示出来,方便你定位缺括号或键名写错的位置。

什么时候用

从日志复制出挤成一行的载荷、接口文档示例难读、或手写字段却不确定引号与逗号是否合法时,用本工具最快。也适合在提交代码评审前核对配置片段,避免把半截损坏的 JSON 带进仓库。不适合当通用文本编辑器:超大文件会拖慢标签页,请先截取需要核对的片段。

示例

  • 格式化对象
    输入:{"name":"cc","ok":true,"n":2}
    输出:{
      "name": "cc",
      "ok": true,
      "n": 2
    }
  • 尾逗号非法
    输入:{"a":1,}
    输出:语法错误(多余逗号或括号不匹配;以页面提示为准)

常见错误

  • 键名必须双引号;单引号或裸标识符在严格 JSON 里都会失败。
  • 数字不要写成 01 这类前导零;超过 Number 安全整数范围的大整数可能丢精度。
  • 标准 JSON 不含注释;把带 // 的片段贴进来前需先删掉注释。

常见问题

我的数据会不会被服务器看到?
不会。解析与格式化只用浏览器内置 API,不向本站 POST 正文。
能处理 YAML 或 XML 吗?
本页只处理 JSON。其它格式请用对应编辑器;哈希或 Base64 可切到同目录其它工具。
很大的文件会卡死吗?
会占用内存并拖慢标签页。建议只贴需要核对的片段,而不是整包几十兆日志。

C++ 里用 nlohmann/json 读同一段文本

#include <iostream>
#include <nlohmann/json.hpp>
int main() {
  auto j = nlohmann::json::parse(R"({"name":"cc","ok":true})");
  std::cout << j["name"] << "\n";
}

浏览器 Playground 默认环境未必带 nlohmann;上面展示常见服务端写法。本页仍用 JS 引擎校验语法,两边语义一致:非法 JSON 都应失败。

在 Playground 打开 · 数据只在浏览器本地处理:关闭或刷新标签页后,输入不会留在本站服务器。

branch: mainposts: 12encoding: utf-8