flycheck json-python-json 无法检测数组末项后的逗号

打开数组末项后面有逗号的json文件时以及向json数组末项后面加逗号时
提示:

Suspicious state from syntax checker json-python-json: Flycheck checker json-python-json returned non-zero exit code 1, but its output contained no errors: No JSON object could be decode

Try installing a more recent version of json-python-json, and please open a bug report if the issue persists in the latest release. Thanks!

而少个冒号、多个引号这样的错误是有正常提示的。

不知道这种情况只有我有,还是json-python-json不支持?

注意 javascript object 和 JSON 的区别。

末项有逗号的只能是 javascript object,当然还有其他差异。

其实只是希望它能报个错,提示一下 (对web一无所知,javascript object是神马 XD)

JSON 是 js 的子集,.json 文件里不能有注释,末项不能有逗号。

我没用过这个 json-python-json (是 Emacs 扩展还是命令行工具?),它应该提示哪里语法错误,而不是自己先崩了。你试试 json-mode + jsonlint (命令)


Update

我看了一下 flycheck 代码,它是哪个 checker 安装了就选哪个。json-python-json 用的是 python 内置模块 json.tool,你 npm install jsonlint 应该就能覆盖掉 json-python-json 了。

如果没覆盖,就强行禁止:

(with-eval-after-load 'flycheck
  (setq-default flycheck-disabled-checkers
                (append flycheck-disabled-checkers
                        '(json-python-json)))
1 个赞

感谢! 我用jsonlint了