JQ 对 Json 文件的评论提出问题
JQ issues with comments on Json file
我正在使用 JQ https://stedolan.github.io/jq/ 和我的 json 在 bash 中工作,当我阅读 json 时抛出一个错误
parse error: Invalid numeric literal at line 2, column 5=
由于我的 json 有一些评论
// comment
"spawn": {}
有人看到我在寻找选项,但找不到任何解决问题的选项。知道如何解决吗?
删除它们; JSON不支持评论。
(JSON 定义为 here; you can see a briefer description of the grammar here。)
JSON 因此 jq 不支持 JSON 输入中的注释(通常意义上的)。 jq 常见问题解答列出了一些可用于删除评论的工具,包括 jsonlint、json5 和 any-json。我推荐一个可以充当过滤器的。
有关链接和更多详细信息,请参阅 https://github.com/stedolan/jq/wiki/FAQ#processing-not-quite-valid-json。
我发现 https://github.com/sindresorhus/strip-json-comments-cli 允许您执行以下操作:
cat my_json_with_comments.json | strip-json-comments | jq .
可以使用 sed 删除,例如删除以 '//' 开头的行:
cat test.json | sed 's/^ *\/\/.*//' | jq <>commands>
sed 是一个 pass-through/stream 编辑器,在这种情况下,它不会用任何内容 ( // ) 替换以 '//' 开头的行; “//”必须使用反斜杠字符进行转义,因为“/”被 sed 用作定界符。
我正在使用 JQ https://stedolan.github.io/jq/ 和我的 json 在 bash 中工作,当我阅读 json 时抛出一个错误
parse error: Invalid numeric literal at line 2, column 5=
由于我的 json 有一些评论
// comment
"spawn": {}
有人看到我在寻找选项,但找不到任何解决问题的选项。知道如何解决吗?
删除它们; JSON不支持评论。
(JSON 定义为 here; you can see a briefer description of the grammar here。)
JSON 因此 jq 不支持 JSON 输入中的注释(通常意义上的)。 jq 常见问题解答列出了一些可用于删除评论的工具,包括 jsonlint、json5 和 any-json。我推荐一个可以充当过滤器的。
有关链接和更多详细信息,请参阅 https://github.com/stedolan/jq/wiki/FAQ#processing-not-quite-valid-json。
我发现 https://github.com/sindresorhus/strip-json-comments-cli 允许您执行以下操作:
cat my_json_with_comments.json | strip-json-comments | jq .
可以使用 sed 删除,例如删除以 '//' 开头的行:
cat test.json | sed 's/^ *\/\/.*//' | jq <>commands>
sed 是一个 pass-through/stream 编辑器,在这种情况下,它不会用任何内容 ( // ) 替换以 '//' 开头的行; “//”必须使用反斜杠字符进行转义,因为“/”被 sed 用作定界符。