🎉 我们上线了 Product Hunt!支持我们并给我们反馈
返回

JSON stringify 和 JSON parse

轻松在 JSON stringify 和 JSON parse 之间进行转换

概述

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 对象表示法
  • 工具会自动使用适当的缩进格式化输出
  • 使用复制按钮直接将输出复制到剪贴板
  • 检查错误信息以解决输入中的验证问题

Rocks Dev Dock 发布了 🥳

在工具内按 '+' 将您喜欢的工具添加到您的 dock。

使用我们的工具时不会收集数据,只是工具。