【问题标题】:How to validate selected text as JSON in VS Code?如何在 VS Code 中将所选文本验证为 JSON?
【发布时间】:2021-12-17 21:51:49
【问题描述】:

是否有允许您在 VS Code 中将所选文本验证为 JSON 的扩展程序或其他解决方案?

这是我多年来在 Notepad++ 中一直在做的一个非常简单的概念,但令人惊讶的是,我仍然没有找到在 VS Code 中执行此操作的方法。我安装的三个最流行的 JSON 扩展都无法做到这一点。

要验证 JSON 文本块,我目前必须复制文本,然后将其粘贴到 jsonlint.com 之类的内容中进行验证。在 VS Code 中一定有比这更好的方法。

更新:我知道 JSON 文档会在 VS Code 中自动进行 linted,但我经常使用具有 JSON sn-ps 的非 JSON 文件,因此它不适用于我的情况。这是一个在生产环境中导致实际问题的示例,因为在 VS Code 中缺少没有用红色波浪线标记的逗号:

[some_template.liquid]

{% schema %}
  {
    ...
    "settings": [
      {
        "type": "header",
        "content": "Content"
      }
      {
        "type": "text",
        "id": "some_id",
        "label": "Some Label"
      }
    ],
    ...
  }
{% endschema %}

因此,我需要一个解决方案,允许我选择一个文本块,运行类似“验证 JSON”的命令,并让它自动更正所选文本,添加红色波浪线以指示 JSON 中的错误,或者在问题控制台中输出错误列表。

【问题讨论】:

  • 自动更正:选择{},该工具将为您编写一个 1000 行的 JSON 文件。 lint JSON 内容的命令是什么?
  • @rioV8 我已经安装了 ESLint,所以它会自动检查所有 *.json 文件。

标签: json visual-studio-code jsonlint


【解决方案1】:

Erik Lynd 的扩展 JSON Tools 允许您对选择进行操作。

选择一段代码并调用 minify 或 prettify 命令(定义了键绑定),它执行tryParseJSON 调用并通过信息消息通知。如果需要,您可以添加 tryParse only 命令。


编辑

我编写了扩展程序JSON Validate,它将验证选定的文本(允许多选)并让您可以将光标移动到有问题的行。每个选择最多 1 个错误。如果没有错误,扩展程序是静默的(可以添加一个设置来改变它)。

【讨论】:

  • 我刚试过这个。尽管它比其他的更接近,但在处理大型 JSON 数据时它实际上并没有真正起作用。示例:imgur.com/a/QPMhPhJ -- 我不会在通知中截断的一个长字符串中查找第 3086 个字符。如果他们只在文档中显示行号会更好。
  • @thdoan 查看我的编辑,现在有一个专用的扩展程序
  • rioV8,你的扩展太棒了!谢谢你告诉我这件事。我刚刚试了一下(见i.imgur.com/I6uO3UF.png)。有两件事可以使它几乎完美恕我直言:(1)逗号的位置实际上是7:8,而不是8:7; (2)添加不触动鼠标即可跳转到错误的方式(目前我必须使用鼠标点击Goto按钮)。
  • @thdoan red squiggles 表示我必须跟踪(文件中的位置)您测试过的文本块,如果您修复了错误,则继续测试,我不知道文件语法,否则我必须能够解析所有文件格式,曲线绑定到诊断提供程序,所以不太可能实现
  • @thdoan 我也注意到了那个错字,现在设置被命名为jsonvalidate.errorsInProblemsPanel,它是 v1.4.0 -> v1.4.1(它们被称为 Panel,但我忘记更新自述文件(v1.4.2)我认为没有人(或至少很少人)更喜欢曲线而不是消息,快速访问设置面板将解决这个问题。(我还没有达到 10M+用户;-)
猜你喜欢
  • 2022-01-16
  • 1970-01-01
  • 2021-05-10
  • 2020-01-02
  • 2020-02-12
  • 2018-02-22
  • 2018-11-21
  • 2017-11-17
  • 2021-12-20
相关资源
最近更新 更多