我能否在以下发言中发表一些意见?Json Json (Json Json) (Json Json Json) (Json Json) Json Json (Json Json) Json (Json) Json (Json) Json (Json) Json (Json) Json (Json) Json (Json) Json(Json) Json (Json) Json (Json) Json(Json) Json (Json) Json如果有,如何处理?
当前回答
是的 你可以在JSON档案里发表评论
{
"": "Location to post to",
"postUrl": "https://example.com/upload/",
"": "Username for basic auth",
"username": "joebloggs",
"": "Password for basic auth (note this is in clear, be sure to use HTTPS!",
"password": "bloejoggs"
}
批注只是描述一组代码或配置的目的的文本。 由于您可以在 JSON 中多次指定密钥, 您可以这样做。 它在方法上是正确的, 唯一的取舍是您在字典中会有一个空密钥, 并有一些垃圾值( 您可以修饰...) 。
我在很多年前就看到了这个问题 但我只是在一个我正在研究的项目里 看到了这样的事情 我觉得这是个非常干净的方法,享受吧!
其他回答
纯粹的答案是否 无.
但有些编辑和平台利用变通办法向JSON提供评论。
1今天,大多数编辑都有内在的选择和扩展,以补充对JSON文件的评论。 (例如: - VS 代码还有一个带有评论的JSON。(jsonc) mode
《VS法典》也有很好的展期)
2一些平台为补充评论(简简json)提供了内在途径。 (例如:- 在消防基地,我可以评论firebase.json
暂时没有问题。
{
"hosting": {
"headers": [
/*{
"source": "*.html",
"headers": [
{
"key": "Content-Security-Policy",
"value": "default-src 'self' ..."
}
]
},*/
]
}
}
3。在您自己的 JSON 解析方法中,您可以设置一个预定义的密钥名称作为注释。
包括:-
{
"comment" : "This is a comment",
"//" : "This also comment",
"name" : "This is a real value"
}
您可以通过正则表达式使用简单的预处理。例如,以下函数将解码在 PHP 中评论 JSON:
function json_decode_commented ($data, $objectsAsArrays = false, $maxDepth = 512, $opts = 0) {
$data = preg_replace('~
(" (?:[^"\\\\] | \\\\\\\\ | \\\\")*+ ") | \# [^\v]*+ | // [^\v]*+ | /\* .*? \*/
~xs', '$1', $data);
return json_decode($data, $objectsAsArrays, $maxDepth, $opts);
}
它支持所有PHP风格的评论: / *, #, / /。 字符串的字句保留不变 。
实际的答案:视觉工作室代码2019年的用户将使用“ jsonc” 扩展名 。
这是切合实际的,因为这是视觉演播室代码所认可的延伸,以表明“JSON与评论”,请在下面的评论中告诉我其他编辑/编辑的情况。
如果视觉演播室代码和其他编辑也会加入当地对JSON5的支持,
(我在张贴前搜索了所有答案,
JSON对于配置文件和其他本地使用非常有意义, 因为它无处不在, 而且因为它比XML简单得多。
如果人们有强烈理由反对在JSON上发表评论(无论是否有效),那么JSON可能会被分成两个:
- JSON在线上,或者在传送JSON数据时适用的规则。
- JSON文件,或档案或本地的JSON文件,界定有效的JSON文件的规则。
JSON-DOC 将允许评论,而其他微小差异可能也存在,比如处理白色空间。 采集器可以很容易地从一个孔转换成另一个孔。
关于下列事项:评论评论评论评论评论评论由Douglas Crockford就该问题撰写的文章(由@Artur Czajka引用)
假设您正在使用 JSON 保存配置文件, 您想要对此进行注释 。 请继续插入您想要的所有评论 。 然后通过 JSMIN 管道将其传送给您的 JSON 分析员 。
我们谈论的是通用配置文件问题(跨语言/平台), 他用联署材料特定工具回答!
可以用任何语言执行JSON的具体简洁, 但将其标准化, 使得它变得无所不在, 在所有语言和平台的旁听者之间无处不在, 所以人们不再浪费时间 缺乏功能,因为他们有良好的使用案例, 在网上论坛研究这个问题, 让人们告诉他们这是一个坏主意, 或者说很容易执行 从文本文档中删除评论。
另一个问题是互操作性。 假设你有一个图书馆或 API 或任何子系统, 与它相关联的配置或数据文件。 这个子系统将用不同语言访问 。 那么您是否要告诉人们: 顺便说一句, 请不要忘记在将 JSON 文档的评语转至解析器之前先删除 JSON 文档中的评论 !
你的战备未变
正如已经指出的,这一黑客利用了该规格的实施。 并非所有的JSON专家都能理解这种JSON。 流派尤其会窒息。
这是一个有趣的好奇心,但你不应该真的用它来做任何事。下面是最初的答案。
我发现一个小黑客 让你可以在JSON档案中 发表评论 不影响解析 或改变数据 以任何方式代表。
似乎当声明对象字典时, 您可以用同一个键指定两个值, 而最后一个值优先 。 信不信由你, 事实证明JSON 分析者以同样的方式工作 。 这样我们就可以用它来在源头 JSON 中创建评论, 这些评论不会出现在解析对象表示中 。
({a: 1, a: 2});
// => Object {a: 2}
Object.keys(JSON.parse('{"a": 1, "a": 2}')).length;
// => 1
如果我们运用这种技术,你评论的JSON档案可能看起来是这样的:
{
"api_host" : "The hostname of your API server. You may also specify the port.",
"api_host" : "hodorhodor.com",
"retry_interval" : "The interval in seconds between retrying failed API calls",
"retry_interval" : 10,
"auth_token" : "The authentication token. It is available in your developer dashboard under 'Settings'",
"auth_token" : "5ad0eb93697215bc0d48a7b69aa6fb8b",
"favorite_numbers": "An array containing my all-time favorite numbers",
"favorite_numbers": [19, 13, 53]
}
上述代码是有效的 JSON 有效 JSON。如果你分析它, 你会得到这样的物体:
{
"api_host": "hodorhodor.com",
"retry_interval": 10,
"auth_token": "5ad0eb93697215bc0d48a7b69aa6fb8b",
"favorite_numbers": [19,13,53]
}
意思是没有评论的痕迹 也不会有奇怪的副作用
黑客快乐!
推荐文章
- 查询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 ?