我能否在以下发言中发表一些意见?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(JSON),但并非在所有情况下都有效,只需两次(或两次以上)设定相同的键。 例如:
{
"param" : "This is the comment place",
"param" : "This is value place",
}
所以JSON会理解这一点:
{
"param" : "This is value place",
}
其他回答
还有其他图书馆与JSON兼容,
其中一个显著的例子是:“Hashcorp语言”(HCL)” (HCL)由那些制造流浪者、包装者、领事和保险库的人共同撰写。
如果您正在使用 NewtonSoft.Json 库和 ASP.NET 来读取/删除您在 JSON 内容中可以使用 :
/"名字": "字符串"
//“ id” : 整数
或
* 这是
注释示例 */
PS :单行评论仅以6+版本的牛顿软 Json 支持。
给那些无法思考的人的附加说明:我在一个 ASP.NET 网络应用程序中使用了用于基本设置的 JSON 格式。 我读了文件, 将其转换成设置对象, 与 Newtonoft 库一起使用, 必要时使用 。
我更喜欢在JSON档案中写关于每个设置的评论, 我真的不在乎JSON格式的完整性, 只要我使用的图书馆可以使用。
我认为这比创建单独的“ 设置. README” 文件并解释其中的设置更容易使用/ 理解” 。
如果你对这种用法有问题, 对不起, 精灵从灯里出来了。 人们会发现JSON格式的其他用法, 您对此无能为力 。
JSON的作者想让我们在JSON里加入评论,链接链接如果JSON应该有评论的话,为什么不将其标准化,让JSON专家来做这项工作?我不同意逻辑,但不幸的是,这是标准。使用由其他人建议的YAML解决方案是好的,但它需要依赖图书馆。
如果您想要删除批注, 但不想有库依赖性, 这里是一个双线解决方案, 适用于 C++ 风格的批注, 但可以调整为其它 :
var comments = new RegExp("//.*", 'mg');
data = JSON.parse(fs.readFileSync(sample_file, 'utf8').replace(comments, ''));
请注意,只有在您可以确信JSON数据不含评论发起人(例如('/'))的情况下,才能使用这一解决办法。
实现 JSON 解析、 解开评论和不增加图书馆的另一种方式是用 JavaScript 解释器来评价 JSON 。 当然,这个方法的告诫是, 您只想要评估未污染的数据( 不可信用户- 输入 ) 。 这是在 Node.js 中的一个例子 -- 另一个警告是, 以下示例只读过一次数据, 然后它会被缓存 :
data = require(fs.realpathSync(doctree_fp));
免责声明:这太愚蠢了
事实上,有一种方法可以添加评论,并且不超出规格(不需要额外的分析师 ) 。 它不会在不作任何区分的情况下产生人类可读的评论。
您可滥用下列手段:
任何标志之前或之后都允许不显眼的白色空间。 白色空间是下列一个或多个代码点的任何序列: 字符制表( 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
(hello base three
在ASCII)中,但使用空间不是0,而是用于1条线路饲料和2条运输回程。
这将留给您许多无法读取的空白( 除非您用 IDE 插件来编码/ 解码在苍蝇上) 。
我从来没有尝试过这个, 原因很明显,你也不应该。
如果您的上下文是 NOde.js 配置, 您可以考虑 JavaScript 通过module.exports
作为JSON的替代:
module.exports = {
"key": "value",
// And with comments!
"key2": "value2"
};
缩略require
语法将保持不变 。 作为 JavaScript, 文件扩展名应该是.js
.
推荐文章
- 查询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 ?