Json5怎一个爽字了得

作者 : 开心源码 本文共1871个字,预计阅读时间需要5分钟 发布时间: 2022-05-13 共244人阅读

JSON(JavaScript Object Notation),一种轻量级的数据交换格式,源于JavaScript,为ECMAScript的一个子集。其易于阅读和编写、易于编码和解析等特性,已被广泛应用于尤其配置及http下的序列化等众多方面。

json语法不支持注释,不支持字符串换行,所有的key都必需双引号,末尾不能有多余的逗号…等等,一大堆极其严格的要求和不支持的功能。

JSON5 和 JSON 的关系就像 ECMAScript 5 和 ECMAScript 3 的关系。JSON5 同样是 ECMAScript 5 的严格的子集。

JSON5是对JSON的扩展,其目的是能够让人们(程序猿)更加容易的阅读和编写。
按照官方详情,JSON5相对于JSON添加了以下特性(优势) summary-of-features:

这完全就是我想要的!安利给大家。

Json5 语法说明

JSON5是对JSON的扩展,让人可以更容易手工编写和维护。

JSON5的特性如下:

对象 Objects

  • key值允许没有双引号 Object keys may be an ECMAScript 5.1 IdentifierName.
{    code:1,    msg:"Hello"}
  • 允许有多余的逗号结尾 Objects may have a single trailing comma.
{    code:1,    msg:"Hello",}
  • key值可以使用单引号来包裹 The key value can be wrapped in single quoted.
{    $name:"HellO",    code:1,    msg:'Hello',}

数组 Arrays

  • 允许有多余的逗号结尾
[1, 2, 3,]

字符串 Strings

  • 允许使用单引号包裹字符串 Strings may be single quoted.
{    $name:'HellO',    code:1,    msg:'Hello',}
  • 字符串可以换行,可以多行 Strings may span multiple lines by escaping new line characters
{    $name:'HellO',    $desc:"hello    world!    haha!    ",    code:1,    msg:'Hello',}
  • 字符串允许使用转义字符 Strings may include character escapes.
{    code:1,    msg:"Hello\nWorld\n!",}

数字 Numbers

  • 数字可以用十六进制表示 Numbers may be hexadecimal.
{    code:0xFF}
  • 允许使用小数点开头或者结尾的数字,例如:.0077. Numbers may have a leading or trailing decimal point.
{    a:.007,    b:7.    f:-.32e-3}
  • 数字可以使用正无穷大、负无穷大、和Nan 来表示, Numbers may be IEEE 754 positive infinity, negative infinity, and NaN.
{    p:Infinity,    n:-Infinity,    b:NaN}
  • 数字前面可以有一个正号+ Numbers may begin with an explicit plus sign. { a:+10 }

注释 Comments

  • 支持单行注释和多行注释 Single and multi-line comments are allowed.
{    // code表示结果代码    code:1    msg:"返回结果说明"    /*        json5的多行注释        真是好爽啊,        完全就是为Panda api而设计的    */}

允许多余的空白符 White Space

  • 允许在任何在json5相关符号之前和之后都可能出现多余的空白符。 Additional white space characters are allowed. 支持的空白符如下:
Code Points DescriptionU+0009: Horizontal tabU+000A: Line feedU+000B: Vertical tabU+000C: Form feedU+000D: Carriage returnU+0020: SpaceU+00A0: Non-breaking spaceU+2028: Line separatorU+2029: Paragraph separatorU+FEFF: Byte order markUnicode: Zs category    Any other character in the Space Separator Unicode category

官方相关说明详情:

json5/json5​github.com


经典前台面试题每日升级,欢迎参加探讨,地址: daily-interview/fe-interview。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Json5怎一个爽字了得

发表回复