把带换行缩进的 JSON 压成一行, 方便塞进 curl -d, SQL 字段, 代码常量或测试用例里. 粘贴即出结果, 不用点按钮.
输入:
{
"a": 1,
"b": [1, 2],
"msg": "hello"
}
单行内容:
{ "a": 1, "b": [1, 2], "msg": "hello" }页面上有两个复制按钮, 来源完全不同, 这是最容易搞混的地方:
", 后面的空白, 不校验, 不重新序列化, 所以缩进留下的连续空格会保留, 粘的就算不是 JSON 也一样能拿到. 想要"看着像一行"就用它. {"a": 1, "b": [1, 2], "msg": "hello"}: 结构规范, 冒号和逗号后面统一带一个空格, 缩进空格被清掉. 它只有在你输入的是合法 JSON 时才会出现. 需要干净的 JSON 文本时, 以第二个为准: 它是重新序列化过的结果; 第一个只是把换行换成了空格.
settings.json 之类的配置一行发给同事, 或写进工单; curl -X POST -d '...' 的请求体; json 字段里插一段初始值; 说明这段内容不是合法 JSON, 接口会把错误原因和位置一起返回(如"第1行第1列"), 此时只有"单行内容"可用, 不会出现"复制 JSON 内容"按钮. 最常见的四种原因: ① 用了单引号 {'a':1}; ② 带注释(//, /* */); ③ 最后一项后面多了逗号; ④ 压根不是 JSON 而是普通文本或 key=value.
不能 -- 本页只压行, 不做转义, 输出里的引号还是裸引号. 要 Java/JS 里的字符串字面量, 在浏览器控制台对压平后的结果执行 JSON.stringify(s) 即可; Java 里也可以用现成的序列化库把对象直接转成带转义的字符串.
那是"单行内容"的正常表现: 它把 \n 换成空格, 原来的缩进空格就跟着留在行里了. 要干净的文本请用"复制 JSON 内容", 或者直接把结果丢进 JSON 格式化 重新序列化一遍.
那用 JSON 格式化, 粘进去就是带缩进的可折叠视图; 本页方向相反, 只负责压平.
"单行内容"这一步完全在浏览器里做; 一旦内容非空, 页面还会把它提交给 /data/decode/decode 接口做 JSON 校验和规范化, 这部分文本会离开本机, 只用于这一次解析. 含密钥, 令牌, 真实用户数据的 JSON 请先脱敏.