我能否在以下发言中发表一些意见?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如果有,如何处理?
当前回答
您可以通过正则表达式使用简单的预处理。例如,以下函数将解码在 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风格的评论: / *, #, / /。 字符串的字句保留不变 。
其他回答
虽然JSON不支持评论,杰森确实如此。
使用“.jsonc”扩展名命名您的文件并使用jjsonc 喷气管解剖师
如果回答为时已晚, 抱歉 。
jsonWithComments.jsonc
示例:
{
// This is a comment!
"something": "idk"
}
如果情况不明,我认为机器人是怪异的。请在投票之前先试一下,因为这个问题没有帮助。
你不行,至少这就是我的经验json.org.
JSON的语法在那一页上被视觉化了, 没有任何关于评论的注释。
如果您的上下文是 NOde.js 配置, 您可以考虑 JavaScript 通过module.exports
作为JSON的替代:
module.exports = {
"key": "value",
// And with comments!
"key2": "value2"
};
缩略require
语法将保持不变 。 作为 JavaScript, 文件扩展名应该是.js
.
免责声明:这太愚蠢了
事实上,有一种方法可以添加评论,并且不超出规格(不需要额外的分析师 ) 。 它不会在不作任何区分的情况下产生人类可读的评论。
您可滥用下列手段:
任何标志之前或之后都允许不显眼的白色空间。 白色空间是下列一个或多个代码点的任何序列: 字符制表( 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 插件来编码/ 解码在苍蝇上) 。
我从来没有尝试过这个, 原因很明显,你也不应该。
无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无JSON曾经支持评论,但被滥用,并被从标准中删除。
从杰森的创造者:
我删除了JSON的评论,因为我看到有人利用他们来维持分解指令,这种做法会破坏互操作性。 我知道,缺乏评论会使一些人感到悲哀,但不应该如此。Douglas Crockford,2012年
官方的JSON现场在JSON.org (JSON.org)JSON 被定义为标准标准标准标准标准总是有请愿程序要求修订标准,由于若干原因,不可能在JSON标准中增加说明。
JSON在设计上是取代XML的简单反向工程(人类分割的)替代物。 它被简化到无需附加说明的地步。 它甚至不是标记语言。 目标是稳定性和互操作性。
任何理解目标方向“has-a”关系的人都可以理解任何 JSON 结构, 这就是整个点。 它只是带有节点标记( 键/ 价值对) 的定向环绕图( DAG ) , 几乎是一个通用的数据结构 。
只需说明“//这些是DAG标记”。 关键名称可以按要求提供信息,允许任意的语义性。
任何平台都可以用几行代码分析 JSON 。 XML 需要复杂的 OO 库, 在许多平台上都是不可行的 。
说明只会降低JSON的互操作性。 没有什么可以补充的,除非你真正需要的是一种标记语言(XML ) , 并且不关心您持续的数据是否容易解析。
但是JSON的创建者也指出,
继续插入您喜欢的所有评论。 然后通过 JSMIN 发送到您的 JSON 分析者 。Douglas Crockford,2012年
推荐文章
- 如何合并2 JSON对象从2个文件使用jq?
- 在VS Code中禁用“Comments are not allowed In JSON”错误
- 如何在Kotlin解析JSON ?
- JSON文件的蒙古导入
- 如何用jQuery / JavaScript解析JSON数据?
- jQuery在请求体中发布有效的json
- 将JSON显示为HTML
- Swift:理解// MARK
- 在JSON键名中哪些字符是有效的/无效的?
- 如何JSON序列化集?
- 如何检查JSON键是否存在?
- 在构建中编写注释的语法是什么?gradle文件?
- 将对象序列化为JSON
- node.js TypeError:路径必须是绝对路径或指定根路径到res.sendFile[解析JSON失败]
- Python json。loads显示ValueError:额外数据