zhcn 编程语言 Web相关 HTML 非公開: JSON 注释

JSON 注释

JSON是一种纯粹的数据交换格式,由于其简单性和灵活性,它适合在多种场景中使用,例如,JSON格式用于配置文件和接口返回的数据。这意味着 JSON 不能像编程语言中那样进行注释,并且所有 JSON 内容都被视为数据的一部分。

不允许注释的原因是JSON主要是用来存储数据的,所以过多的注释不仅会影响数据的可读性,还会增加数据量,导致数据的发送和分析变得困难,影响速度。 。

但是,在某些场景下,您可能需要使用注释。例如,我想用注释来解释JSON格式的配置文件中的配置信息,用注释来解释接口返回的JSON数据中的数据的含义。那么如何给 JSON 数据添加注释呢?这里有一些方法。

使用特殊的键名

要向 JSON 添加注释,请在要添加的键值对之前(或之后)添加一个具有相同名称的键,并在键名称中添加特殊字符以进行区分: @#?_我会的。 、 /等,并在key对应的value中定义注释的内容。

注意:在键名中添加特殊字符时,尽量避免使用: , { , } , [ , ]等 JSON 中的常见字符。

让我们通过一个简单的示例来展示如何使用特殊键名称向 JSON 添加注释。

 
{
    "@name": "ウェブサイト名",
    "name": "IT基礎",
    "_url": "ウェブサイトURL",
    "url": "https://it-kiso.com/",
    "course": "JSONチュートリアル",
    "@charge": "0=有料; 1=無料",
    "charge": 1,
    "#list": "チュートリアル目次",
    "list": [
        "JSONデータの種類",
        "JSONオブジェクト",
        "JSON配列"
    ],
    "message": {
        "code": 0,
        "message": "OK",
        "#data": {
            "#id": "ユーザーID",
            "#type": "0=正常; 1=異常",
            "#name": "名前",
            "#createTime": "作成日(yyyy-MM-dd)"
        },
        "data": {
            "id": "12345",
            "type": 0,
            "name": "私の名前",
            "createTime": "2020-05-20"
        }
    }
}  

除了在键名中添加特殊字符之外,您还可以直接使用“comment”、“_comment”或“__comment”作为键名来定义注释,如下例所示。

 
{
"_comment": "IT基礎(https://it-kiso.com/)—— オンラインでプログラミングを学ぶためのウェブサイト",
"course": {
"name": "JSONチュートリアル",
"url": "https://it-kiso.com/json/index.html"
}
} 

JSON5

JSON5 是开发者创建并发布在 GitHub( GitHub )上的 JSON 非官方标准,可以认为是 JSON 的升级。 JSON5主要通过引入ECMAScript5.1的一些特性来扩展JSON语法,缓解JSON的一些限制,并且兼容现有的JSON格式。

与JSON相比,JSON5做了以下改变:

  • 您可以在对象或数组的末尾添加逗号(即最后一个键值对或值)。
  • 可以使用单引号定义字符串。
  • 字符串可以包含转义字符并且可以跨越多行。
  • 可以定义十六进制数。
  • 数字可以包含前导或尾随小数点。
  • 您可以在数字前添加加号或减号来表示正数或负数。
  • 您可以使用//定义单行注释,使用/* ... */定义多行注释。

如下例所示:

 
{
  "name": "IT基礎",
  "url": "https://it-kiso.com/",
  "course": "JSONチュートリアル",
  "charge": 1,
  "list": [
    "JSONデータの種類",
    "JSONオブジェクト",
    "JSON配列"
  ],
  "message": {
    "code": 0,
    "message": "OK",
    "data": {
      "id": "12345",
      "type": 0,
      "name": "私の名前",
      "createTime": "2020-05-20"
    }
  }
} 

使用 JSON5 非常简单。如果在前端使用,可以直接导入js文件,如下例所示。

<script src=”https://unpkg.com/json5@^2.0.0/dist/index.min.js”></script>

上面介绍的js文件创建了一个全局的JSON5对象。示例代码如下。

 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JavaScript</title>
</head>
<body>
    <script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
    <script>
        var arr = {
            // ウェブサイト名
            "name": "IT基礎",
            // ウェブサイトURL
            "url": "https://it-kiso.com/",
            "course": "JSON チュートリアル",
            // 0=有料; 1=無料
            "charge": 1,
            // チュートリアルリスト
            "list": [
                "JSONデータの種類",
                "JSONオブジェクト",
                "JSON配列"
            ],
            "message": {
                "code": 0,
                "message": "OK",
                /*
                    id = ユーザーID
                    type = 0=正常; 1=異常
                    name = 名前
                    createTime = 作成日時(yyyy-MM-dd)
                 */
                "data": {
                    "id": "12345",
                    "type": 0,
                    "name": "私の名前",
                    "createTime": "2020-05-20"
                }
            }
        };
        var str = JSON5.stringify(arr);
        console.log(arr)
    </script>
</body>
</html> 

此外,您还可以通过 Node.js 安装 JSON5。安装命令为:

npm 安装 json5

安装成功后,您可以使用const JSON5 = require('json5')创建全局 JSON5 对象,如下例所示。

JSON是一种纯粹的数据交换格式,由于其简单性和灵活性,它适合在多种场景中使用,例如,JSON格式用于配置文件和接口返回的数据。这意味着 JSON 不能像编程语言中那样进行注释,并且所有 JSON 内容都被视为数据的一部分。

不允许注释的原因是JSON主要是用来存储数据的,所以过多的注释不仅会影响数据的可读性,还会增加数据量,导致数据的发送和分析变得困难,影响速度。 。

但是,在某些场景下,您可能需要使用注释。例如,我想用注释来解释JSON格式的配置文件中的配置信息,用注释来解释接口返回的JSON数据中的数据的含义。那么如何给 JSON 数据添加注释呢?这里有一些方法。

使用特殊的键名

要向 JSON 添加注释,请在要添加的键值对之前(或之后)添加一个具有相同名称的键,并在键名称中添加特殊字符以进行区分: @#?_我会的。 、 /等,并在key对应的value中定义注释的内容。

注意:在键名中添加特殊字符时,尽量避免使用: , { , } , [ , ]等 JSON 中的常见字符。

让我们通过一个简单的示例来展示如何使用特殊键名称向 JSON 添加注释。

 
{
    "@name": "ウェブサイト名",
    "name": "IT基礎",
    "_url": "ウェブサイトURL",
    "url": "https://it-kiso.com/",
    "course": "JSONチュートリアル",
    "@charge": "0=有料; 1=無料",
    "charge": 1,
    "#list": "チュートリアル目次",
    "list": [
        "JSONデータの種類",
        "JSONオブジェクト",
        "JSON配列"
    ],
    "message": {
        "code": 0,
        "message": "OK",
        "#data": {
            "#id": "ユーザーID",
            "#type": "0=正常; 1=異常",
            "#name": "名前",
            "#createTime": "作成日(yyyy-MM-dd)"
        },
        "data": {
            "id": "12345",
            "type": 0,
            "name": "私の名前",
            "createTime": "2020-05-20"
        }
    }
}  

除了在键名中添加特殊字符之外,您还可以直接使用“comment”、“_comment”或“__comment”作为键名来定义注释,如下例所示。

 
{
"_comment": "IT基礎(https://it-kiso.com/)—— オンラインでプログラミングを学ぶためのウェブサイト",
"course": {
"name": "JSONチュートリアル",
"url": "https://it-kiso.com/json/index.html"
}
} 

JSON5

JSON5 是开发者创建并发布在 GitHub( GitHub )上的 JSON 非官方标准,可以认为是 JSON 的升级。 JSON5主要通过引入ECMAScript5.1的一些特性来扩展JSON语法,缓解JSON的一些限制,并且兼容现有的JSON格式。

与JSON相比,JSON5做了以下改变:

  • 您可以在对象或数组的末尾添加逗号(即最后一个键值对或值)。
  • 可以使用单引号定义字符串。
  • 字符串可以包含转义字符并且可以跨越多行。
  • 可以定义十六进制数。
  • 数字可以包含前导或尾随小数点。
  • 您可以在数字前添加加号或减号来表示正数或负数。
  • 您可以使用//定义单行注释,使用/* ... */定义多行注释。

如下例所示:

 
{
  "name": "IT基礎",
  "url": "https://it-kiso.com/",
  "course": "JSONチュートリアル",
  "charge": 1,
  "list": [
    "JSONデータの種類",
    "JSONオブジェクト",
    "JSON配列"
  ],
  "message": {
    "code": 0,
    "message": "OK",
    "data": {
      "id": "12345",
      "type": 0,
      "name": "私の名前",
      "createTime": "2020-05-20"
    }
  }
} 

使用 JSON5 非常简单。如果在前端使用,可以直接导入js文件,如下例所示。

<script src=”https://unpkg.com/json5@^2.0.0/dist/index.min.js”></script>

上面介绍的js文件创建了一个全局的JSON5对象。示例代码如下。

 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JavaScript</title>
</head>
<body>
    <script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
    <script>
        var arr = {
            // ウェブサイト名
            "name": "IT基礎",
            // ウェブサイトURL
            "url": "https://it-kiso.com/",
            "course": "JSON チュートリアル",
            // 0=有料; 1=無料
            "charge": 1,
            // チュートリアルリスト
            "list": [
                "JSONデータの種類",
                "JSONオブジェクト",
                "JSON配列"
            ],
            "message": {
                "code": 0,
                "message": "OK",
                /*
                    id = ユーザーID
                    type = 0=正常; 1=異常
                    name = 名前
                    createTime = 作成日時(yyyy-MM-dd)
                 */
                "data": {
                    "id": "12345",
                    "type": 0,
                    "name": "私の名前",
                    "createTime": "2020-05-20"
                }
            }
        };
        var str = JSON5.stringify(arr);
        console.log(arr)
    </script>
</body>
</html> 

此外,您还可以通过 Node.js 安装 JSON5。安装命令为:

npm 安装 json5

安装成功后,您可以使用const JSON5 = require('json5')创建全局 JSON5 对象,如下例所示。