JSON5 输入/输出

字符数: 0

JSON 输入/输出

字符数: 0

什么是 JSON5?

简介

JSON5 是 JSON 的超集,旨在让 JSON 更易于人类编写和维护。它扩展了 JSON 标准,增加了许多现代编程语言中常见的语法特性,同时保持与标准 JSON 的完全兼容。JSON5 解析器可以解析所有有效的 JSON,但还能处理额外的语法。

主要特点

注释支持

支持单行注释(//)和多行注释(/* */)

尾随逗号

对象和数组的最后一个元素可以带逗号

未加引号的键

对象键名可以不用引号包裹

多行字符串

支持使用反斜杠创建多行字符串

扩展数字

支持十六进制(0x)、八进制(0o)和二进制(0b)

兼容 JSON

完全兼容标准 JSON,所有有效 JSON 都是有效 JSON5

语法对比示例

标准 JSON

{
  "name": "张三",
  "age": 30,
  "hobbies": ["编程", "阅读"]
}

JSON5

{
  // 名字
  name: '张三',
  age: 30,
  hobbies: ['编程', '阅读',],  // 尾随逗号
}

使用场景

  • 配置文件:编写更易读、易维护的配置文件
  • 数据交换:在需要注释和灵活格式时使用
  • 开发调试:快速编写测试数据,支持注释说明
  • 文档编写:在文档中展示数据结构时使用
  • JSON 转换:将 JSON5 转换为标准 JSON 供其他系统使用

注意事项

  • JSON5 解析后可以完美转换为标准 JSON,不会丢失任何数据
  • 在需要严格 JSON 格式的环境中,请先转换为标准 JSON
  • 多行字符串在转换为 JSON 时会被转换为普通字符串
  • 十六进制数字会被转换为十进制数字
  • 注释在转换为 JSON 时会被移除
  • 尾随逗号在转换为 JSON 时会被移除
  • 未加引号的键名在转换为 JSON 时会被加上引号