首页 > 其他分享 >6. json--注释

6. json--注释

时间:2022-08-25 17:33:40浏览次数:66  
标签:comment 键名 -- JSON 注释 json 添加 name

1. 前言

JSON 是一种纯粹的数据交换格式,其简单、灵活的特性使得 JSON 适合被用于各种不同的场景,例如在配置文件中、在接口返回的数据中都会用到 JSON 格式。然而 JSON 却有一个非常明显的缺点,那就是 JSON 不能像编程语言那样添加注释,JSON 中的任何内容都会看作数据的一部分。

之所以不允许添加注释,是因为 JSON 主要是用来存储数据的,过多的注释会对数据的可读性造成影响,同时也会造成数据体积变大,进而影响数据传输、解析的速度。

但是,在某些场景中,我们又需要使用注释。例如在 JSON 格式的配置文件中,我们希望以注释的形式对配置信息进行解释说明;在接口返回的 JSON 数据中,我们希望通过注释描述数据的含义等等。那么我们要怎么在 JSON 数据中添加注释呢?下面就来介绍几种方法。

2. 使用特殊的键名

想要在 JSON 中添加注释,我们可以在要添加注释键/值对的前面(或后面)添加一个同名的键,并在键名中添加一个特殊字符加以区分,例如@#?_/等,然后在与键对应的值中定义注释的内容。

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

下面通过一个简单的示例来演示一下如何通过特殊的键名在 JSON 中添加注释:

 1 {
 2     "@name": "网站名称",
 3     "name": "百度网址",
 4     "_url": "网址",
 5     "url": "https://www.baidu.com/",
 6     "course": "JSON 教程",
 7     "@charge": "0=收费; 1=免费",
 8     "charge": 1,
 9     "#list": "教程目录",
10     "list": [
11         "JSON数据类型",
12         "JSON对象",
13         "JSON数组"
14     ],
15     "message": {
16         "code": 0,
17         "message": "OK",
18         "#data": {
19             "#id": "用户ID",
20             "#type": "0=正常; 1=异常",
21             "#name": "姓名",
22             "#createTime": "创建时间(yyyy-MM-dd)"
23         },
24         "data": {
25             "id": "12345",
26             "type": 0,
27             "name": "我的名字",
28             "createTime": "2022-05-20"
29         }
30     }
31 } 

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

1 {
2     "_comment": "这是注释,这是注释",
3     "course": {
4         "name": "JSON 教程",
5         "url": "https://www.baidu.com/"
6     }
7 }

 

标签:comment,键名,--,JSON,注释,json,添加,name
From: https://www.cnblogs.com/jiajunling/p/16625016.html

相关文章

  • TC判断用户对某个对象是否有更改的权限
    /** *获取是否有更改的权限 *@return */ publicStringgetCanChangeString(){ Stringtype=""; Stringproperty=""; try{ type=target.getPropert......
  • 函数引用
    把函数作为参数传递给其他函数,除了使用lambda表达式,Kotlin还提供了其他方法,也可以使用函数引用。使用函数引用可以把具名函数转换成值参,凡是使用lambda表达式的地方,都可以......
  • sed命令基础
    sed命令基础sed编辑器sed编辑器被称作流编辑器(streameditor)。流编辑器会在编辑器处理数据之前,基于预先提供的一组规则来编辑流。(说人话就是把输入的内容处理一下得......
  • Caused by: java.lang.UnsupportedClassVersionError: com/hfplm/handler/HFEBOMation
    Causedby:java.lang.UnsupportedClassVersionError:com/hfplm/handler/HFEBOMationHandlerhasbeencompiledbyamorerecentversionoftheJavaRuntime(classf......
  • 将python打包成exe
    1.PyInstallerpass2.AutoPYtoEXE2.1简单说明简介:使用简单的图形界面将.py转换为.exe。时间:jul9,2018~Aug9,2022python版本:3.6 ~3.102.2安装(1)通过Pypi安......
  • 设置视图的间距
    视图提供了两种通用属性来设置间距,它的所有子类都具有这两种属性(即各类布局和控件)1.layout_margin(外间距):用来设置当前视图与外部视图(包括上级视图和平级视图)的距离。 ......
  • 云存储工具OneDrive
    OneDriveforMac的云存储工具,OneDrive能够帮助大家在office365中(包括MicrosoftTeams)存储、访问和发现你的个人和共享工作文件,是一款功能极强的功能软件。使用OneDri......
  • SpringBoot修改启动端口server.port方式
     springboot服务修改端口的方式1、修改application.yml文件这是最简单的方式 2、以jdk参数方式启动java-Dserver.port=3000-jarxx.jar 3、启动参数java......
  • python基础-GIL
    python速度慢的原因动态类型语言,边解释边执行GIL,无法利用多核CPU并发执行GIL同步线程的一种机制,使得任何时刻仅有一个线程在执行。在多核心处理器上,使用GIL的解释器......
  • Java 连接 MySQL
    让Java和MySQL连接起来-囧雪诺-博客园 https://www.cnblogs.com/jonsnow/p/6246131.htmlJava连接MySQL需要驱动包,可以下载菜鸟教程提供的 jar包:http://stati......