我能否在以下发言中发表一些意见?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如果有,如何处理?
当前回答
没有 No.
JSON 仅限数据。 如果您包含一个注释, 那么它也一定是数据 。
您可以使用指定数据元素"_comment"
使用JSON数据的应用程序应该忽略(或某事)这一点。
在产生/接收JSON的进程中,你最好有评论,因为他们应该知道JSON的数据会是什么,或者至少知道它的结构。
但如果你决定:
{
"_comment": "comment text goes here...",
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
其他回答
否 无表格、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、表格评论、//…
或/*…*/
在 JSON 中不允许 。 此答案基于 :
- https://www.json.org
- RFC 4627: 变化:
application/json
JavaScript 对象标记( JSON) 的介质类型 - RFC 8259JavaScript 对象标记(JSON)数据交换格式(取代RFCs 4627、7158、7159)
虽然JSON不支持评论,杰森确实如此。
使用“.jsonc”扩展名命名您的文件并使用jjsonc 喷气管解剖师
如果回答为时已晚, 抱歉 。
jsonWithComments.jsonc
示例:
{
// This is a comment!
"something": "idk"
}
如果情况不明,我认为机器人是怪异的。请在投票之前先试一下,因为这个问题没有帮助。
你的战备未变
正如已经指出的,这一黑客利用了该规格的实施。 并非所有的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, 需要一些评论才能让事情容易记住。
我用这个简单的 Python 函数替换备注( U)json.loads
转换成dict
:
import json, re
def parse_json(data_string):
result = []
for line in data_string.split("\n"):
line = line.strip()
if len(line) < 1 or line[0:2] == "//":
continue
if line[-1] not in "\,\"\'":
line = re.sub("\/\/.*?$", "", line)
result.append(line)
return json.loads("\n".join(result))
print(parse_json("""
{
// This is a comment
"name": "value" // so is this
// "name": "value"
// the above line gets removed
}
"""))
如果您正在使用 NewtonSoft.Json 库和 ASP.NET 来读取/删除您在 JSON 内容中可以使用 :
/"名字": "字符串"
//“ id” : 整数
或
* 这是
注释示例 */
PS :单行评论仅以6+版本的牛顿软 Json 支持。
给那些无法思考的人的附加说明:我在一个 ASP.NET 网络应用程序中使用了用于基本设置的 JSON 格式。 我读了文件, 将其转换成设置对象, 与 Newtonoft 库一起使用, 必要时使用 。
我更喜欢在JSON档案中写关于每个设置的评论, 我真的不在乎JSON格式的完整性, 只要我使用的图书馆可以使用。
我认为这比创建单独的“ 设置. README” 文件并解释其中的设置更容易使用/ 理解” 。
如果你对这种用法有问题, 对不起, 精灵从灯里出来了。 人们会发现JSON格式的其他用法, 您对此无能为力 。
推荐文章
- 查询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 ?