概述
JSON stringify和字符串化工具帮助您在 JSON 字符串和 JSON 对象之间进行转换。它支持将 JSON 字符串解析为格式化对象,以及将对象字符串化为 JSON 格式。
JSON parse
将 JSON 字符串转换为格式化对象。此模式帮助您验证和格式化 JSON 字符串。
原始 JSON 字符串:
{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"hobbies\":[\"reading\",\"gaming\"],\"address\":{\"city\":\"New York\",\"country\":\"USA\"}}格式化的 JSON:
{
"name": "John Doe",
"age": 30,
"isStudent": false,
"hobbies": [
"reading",
"gaming"
],
"address": {
"city": "New York",
"country": "USA"
}
}JSON stringify
将 JSON 字符串转换为格式化对象。此模式帮助您验证和格式化 JSON 字符串。
JSON 对象:
const personData = {
name: "John Doe",
age: 30,
isStudent: false,
hobbies: ["reading", "gaming"],
address: {
city: "New York",
country: "USA"
}
};转换为 JSON 字符串:
// 压缩的 JSON 字符串(带转义引号)
const rawJson = "{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"hobbies\":[\"reading\",\"gaming\"],\"address\":{\"city\":\"New York\",\"country\":\"USA\"}}";
// 美化的 JSON 字符串
const prettyJson = JSON.stringify(personData, null, 2);选项
- 缩进大小:选择 2、4 或 8 个空格进行格式化
- 转义 Unicode:将 Unicode 字符转换为 \uXXXX 格式
- 移除空格:输出无空格或换行的压缩 JSON
还原转义的 JSON
转义的 JSON(也叫字符串化或双重编码的 JSON)是指被存放在 JSON 字符串里的 JSON 文档。每个引号都变成 \",每个换行都变成 \n。只要 JSON 经过了把它当作纯文本而非结构化数据处理的系统,就会出现这种情况。
常见来源
- 把请求或响应正文作为单个字符串字段记录的日志
- 对嵌套负载做了两次序列化的接口,于是该值以字符串而不是对象的形式返回
- 存放序列化文档的数据库 TEXT 或 VARCHAR 字段
- 把原始事件包在信封结构里的 Webhook 负载
- 从调试器或浏览器开发者工具里复制出来的值,它们本身就是转义后的形式
如何还原
把转义后的字符串粘贴到输入框并执行 Parse,工具会去掉一层编码并格式化输出。如果结果仍然是一串带大量反斜杠的字符串,说明该文档被编码了不止一次——对结果再次执行 Parse,直到出现真正的结构为止。
转义后的输入:
"{\"order\":{\"id\":41,\"note\":\"line one\\nline two\"}}"解析之后:
{
"order": {
"id": 41,
"note": "line one
line two"
}
}常见的转义问题
大多数解析失败并不是因为文档格式混乱,而是因为它「几乎」是 JSON。以下几种情况几乎涵盖了全部原因。
输出仍然是一长串转义字符串
该值被编码了两次。请对结果再次执行 Parse——每执行一次正好去掉一层编码。
文本里显示的是 \n 而不是换行
在 JSON 字符串内部,\n 是由两个字符组成的转义序列,并不是换行符。解析会把它还原成真正的换行,而直接对原始文本做查找替换则不会。
从配置文件里复制的内容无法解析
JSON 要求使用双引号。用单引号包裹的键和值在 JavaScript 中合法,但不是合法的 JSON。
解析在接近结尾处报出意外的符号错误
JSON 不允许在对象或数组的最后一个元素后面留下逗号。JavaScript 允许,因此手工编辑过的文件经常会多出一个。
从文档软件或聊天工具里复制的内容无法解析
这些软件会把直引号替换成印刷体引号,而 JSON 无法识别。请重新输入引号,或先通过纯文本编辑器粘贴一遍。
文件看起来没问题,却提示第一个字符非法
该文件开头带有 UTF-8 字节顺序标记(BOM)。请以「UTF-8 无 BOM」的格式重新保存。
功能特点
- 将 JSON 字符串解析为格式化对象
- 将 JSON 对象字符串化为 JSON 格式
- 可配置的缩进(2、4 或 8 个空格)
- Unicode 字符转义选项
- 错误验证和帮助信息
- 复制结果到剪贴板
- 使用示例数据快速测试
使用技巧
- 使用“加载示例”按钮查看示例输入
- 在字符串化模式中,您可以使用带单引号和无引号键的 JSON 对象表示法
- 工具会自动使用适当的缩进格式化输出
- 使用复制按钮直接将输出复制到剪贴板
- 检查错误信息以解决输入中的验证问题