我可以在json文件里使用注释吗? 如果是的话,怎么写?
当前回答
json不支持本地的评论, 但您可以自己做解码器或至少预处理器来删除评论, 这完全没问题(只要您只是忽略评论, 不使用它们来指导您的应用程序如何处理json数据 ) 。
json 没有评论。 json 编码器不能输出评论。 json 编码器可以接受和忽略评论。
评论不应被用来传递任何有意义的信息。 这就是json的目的。
参考:杜格拉斯·克罗福德,Json Spec的作者。
其他回答
这是一个"你能"的问题。 这是"可以"的答案。
否, 您不应该使用重复对象成员将侧通道数据塞进json 编码 。 (请参见 rfc 中“ 对象中的名称应该是独一无二的 ” ) 。
是的,你可以在json周围插入评论, 你可以分析出来。
但如果你想将任意的侧道数据插入和提取到一个有效的json 中, 请使用一个答案 。 我们利用 Json 编码中的数据非独有的表达方式。 在 rfc 的第二节中, “ 允许在六个结构字符中的任何字符之前或之后使用白色空间 ” 。
* rfc 仅表示“在六个结构字符之前或之后允许有白色空间”,但没有明确提及字符串、数字、“假”、“真”和“null”。 在所有执行中,这一遗漏被忽略。
首先,将你的json拼写成拼写:
$jsonMin = json_encode(json_decode($json));
然后将您的评论编码为二进制 :
$hex = unpack('H*', $comment);
$commentBinary = base_convert($hex[1], 16, 2);
然后输入您的二进制 :
$steg = str_replace('0', ' ', $commentBinary);
$steg = str_replace('1', "\t", $steg);
您的输出 :
$jsonWithComment = $steg . $jsonMin;
如果您的文本文件, 即json 字符串, 将会被某个程序读取, 使用前要删除 c 或 c++ 样式的注释会有多困难 ?
回答:如果你这样做,它将是一个班轮。那么json文件可以用作配置文件。
免责声明:这太愚蠢了
实际上有一种方式可以添加评论,并且不超出规格(不需要额外的分析师)。 它不会在不作任何区分的情况下产生人类可读的评论。
您可滥用下列手段:
允许在任何象征性之前或之后使用微小的白色空间。 白空间是以下一个或多个代码点的任何序列: 字符制表( u+0009)、 线性种子( u+000a)、 运输返回( u+000d) 和空间( u+0020)。
黑客方式, 您可以滥用此选项添加注释 。 例如 : 开始并用标签结束您的评论 。 在 base 3 编码注释, 并使用其他空白字符来代表它们 。 例如 。
010212 010202 011000 011000 011010 001012 010122 010121 011021 010202 001012 011022 010212 011020 010202 010202
(在Ascii中为3号基数你好),但不使用0个空间,而是用于1条线路上网和2条运输回程。
这将只留下许多无法读取的白色空间( 除非您用一个 ide 插件来编码/ 解码在苍蝇上) 。
我从来没有尝试过这个, 原因很明显,你也不应该。
在json中不允许使用表格///...或/*...* /的注释。
https://www.json.org rfc 4627: Javacampn 对象标记(json)申请/json媒体类型(json) rfc 8259; json) 数据交换格式(supercedes rfcs 4627, 7158, 7159)
json不支持评论,也从未打算用于需要评论的配置文件。
hjson 是人类的配置文件格式。 放松语法, 减少错误, 更多评论 。
调
图书馆、java、python、php、生锈、走、红宝石、C+++和c图书馆见hjson.github.io。
推荐文章
- 查询JSON类型内的数组元素
- 将JSON字符串转换为HashMap
- 将JsonNode转换为POJO
- Json_encode()转义正斜杠
- 如何写一个JSON文件在c# ?
- 在序列化和反序列化期间JSON属性的不同名称
- 为什么PHP的json_encode函数转换UTF-8字符串为十六进制实体?
- Ajax会调用什么样的响应,比如'for (;;);{json data}的意思?
- 在JavaScript中将JSON字符串解析为特定对象原型
- 使用Jackson将JSON字符串转换为漂亮的打印JSON输出
- jQuery。由于转义了JSON中的单引号,parseJSON抛出“无效JSON”错误
- 用c#解析JSON
- 如何合并2 JSON对象从2个文件使用jq?
- 在VS Code中禁用“Comments are not allowed In JSON”错误
- 如何在Kotlin解析JSON ?