即时转换:JavaScript To JSON — Numio
把 JavaScript 对象字面量转换为严格的 JSON,缩进 2 个空格。支持不带引号的键、单引号、注释、末尾逗号、十六进制数和以小数点开头的小数,并统一规范化。
把 .js 文件中的配置或测试数据对象复制到 JSON 文件、API 请求体或 Postman 集合中。
支持 JSON 和 JSON5,可使用注释、单引号和末尾逗号;不会执行函数或 JavaScript 表达式。
JS Object
JSON
适用场景
- 把 .js 文件中的配置或测试数据对象复制到 JSON 文件、API 请求体或 Postman 集合中。
- 清理从浏览器 DevTools 或文档中粘贴来的对象,使其能通过严格的 JSON 解析器。
使用方法
- 将对象字面量(只要数据,不含变量声明和末尾分号)粘贴到左侧编辑器,或用加载文件按钮打开 UTF-8 文件。
- 输入时右侧会实时显示 JSON;如果出现 "invalid character" 等错误,请检查提示的行号和列号。
- 检查转换后的值(十六进制变为十进制,引号变为双引号),然后复制结果。
JavaScript 对象字面量
{
// Mongoose-style field definition
title: {
type: 'String',
required: true,
},
year: { type: 'Number', max: 0x7E6 },
tags: ['draft', 'review',],
ratio: .75,
'content-type': "text/plain",
}JSON
{
"title": {
"type": "String",
"required": true
},
"year": {
"type": "Number",
"max": 2022
},
"tags": [
"draft",
"review"
],
"ratio": 0.75,
"content-type": "text/plain"
}功能与限制
输入在浏览器中由 JSON5 解析器解析,代码不会被执行。表达式、函数、new Date()、模板字符串、undefined 和变量引用都会被视为无效字符而拒绝。
NaN 和 Infinity 会报错,因为 JSON 无法表示它们。
注释和原有的键排版不会保留;输出始终使用双引号和 2 空格缩进。
超过 2^53 的整数会丢失精度(12345678901234567890 变为 12345678901234567000)。大的 ID 请写成字符串。
FAQ
可以粘贴 const config = { ... }; 吗?
不可以。只接受值本身。请删除声明和末尾分号,否则解析器会在该位置报告无效字符。
重复的键会怎样处理?
以最后一次出现的为准。{a: 1, a: 2} 会变成 {"a": 2},且不会有警告,手动合并的对象请注意检查。
根节点可以是数组或单个值吗?
可以。任何 JSON5 值都能转换,例如 [1, 2,] 变为两个元素的 JSON 数组,'hi' 变为 "hi"。