我能否在以下发言中发表一些意见?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的评论,因为我看到有人利用他们来维持分解指令,这种做法会破坏互操作性。 我知道,缺乏评论会使一些人感到悲哀,但不应该如此。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年
其他回答
如果您正在使用 NewtonSoft.Json 库和 ASP.NET 来读取/删除您在 JSON 内容中可以使用 :
/"名字": "字符串"
//“ id” : 整数
或
* 这是
注释示例 */
PS :单行评论仅以6+版本的牛顿软 Json 支持。
给那些无法思考的人的附加说明:我在一个 ASP.NET 网络应用程序中使用了用于基本设置的 JSON 格式。 我读了文件, 将其转换成设置对象, 与 Newtonoft 库一起使用, 必要时使用 。
我更喜欢在JSON档案中写关于每个设置的评论, 我真的不在乎JSON格式的完整性, 只要我使用的图书馆可以使用。
我认为这比创建单独的“ 设置. README” 文件并解释其中的设置更容易使用/ 理解” 。
如果你对这种用法有问题, 对不起, 精灵从灯里出来了。 人们会发现JSON格式的其他用法, 您对此无能为力 。
您可以使用JSON-LD (JSON-LD)和schema.org 注释用于正确写入备注:
{
"https://schema.org/comment": "this is a comment"
}
是的,你可以,但你的分析 可能会失败(没有标准)
要分析这些注释,您应该删除这些注释,或者通过手写,或者使用正则表达式:
它取代任何评论,例如:
/****
* Hey
*/
/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/
它取代任何评论,例如:
// Hey
/\/\/.*/
在JavaScript, 你可以做这样的事情:
jsonString = jsonString.replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/, "").replace(/\/\/.*/,"")
var object = JSON.parse(jsonString);
是 是新的标准,杰森5在许多 C+++ 样式批注中允许 C++ 样式批注其它延长:
// A single line comment.
/* A multi-
line comment. */
JSON5 数据交换格式(JSON5)是JSON的超级组合,旨在减轻JSON的某些限制。它完全向后兼容,使用它可能比写自定义的非标准分析器、为现有分析器打开非标准功能或使用像字符串字段等各种黑客来评论要好一些。或者,如果正在使用的分析器支持的话,简单同意我们正在使用 JSON 5子集,即 JSON 和 C++ 样式注释。它比我们把JSON标准为我们所认为的合适.
已经存在npm 软件包包, Python 软件包包, Java 软件包和C 图书馆库我认为没有理由坚持“官方的”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类型内的数组元素
- 将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 ?