使用对象键作为 JSON 架构中的类型

2024-05-08

假设我想根据 Intellij IDEA 中的 JSON 架构验证 YAML 文件。该文件的结构如下:

foo:
  command: touch /tmp/a.txt  # I know I don't need this but it's an example
bar:
  command: echo "Hello World!" > /tmp/a.txt
baz:
  command: cat /tmp/a.txt
  dependencies:
    - foo
    - bar

因此属性名称可以是任何字符串,但依赖项只能是根对象的键/属性名称。理想情况下我会指定一个枚举,但这个问题表明这是不可能的在 JSON 模式中使用对象属性键作为枚举 https://stackoverflow.com/questions/47454339/use-object-property-keys-as-enum-in-json-schema(除非答案已过时)。

不过,我注意到,当您在 Intellij 中编写模式并添加"required" = [...]它使用“属性”对象的属性名称自动完成必填字段(即使它不使用它们来验证,但对于我的目的来说足够接近)。我已经检查了它的架构http://json-schema.org/draft-07/schema# http://json-schema.org/draft-07/schema#但一直无法理解它是如何做到的。

有没有一种方法可以定义我的架构,以便 Intellij 根据另一个属性的键自动完成,就像定义架构时一样?


模式本身没有任何内容指示数据中可能的值。实际上并不要求所需数组中的项目也在属性中定义。

此类功能仅由 IDE 定义。 IntelliJ IDEA 记录了添加自定义架构的能力:

除了 JSON Schema Store 中的模式之外,IntelliJ IDEA 还可以让您 配置和使用其他存储中的自定义架构。您可以下载 所需的架构并将其存储在项目根目录下或指定 资源的 URL,以便 IntelliJ IDEA 可以下载架构 自动地。

要配置自定义 JSON 架构:

在“设置/首选项”对话框 ⌘, 中,转到“语言和框架” |模式和 DTD | JSON 架构映射。

https://www.jetbrains.com/help/idea/json.html#ws_json_schema_add_custom https://www.jetbrains.com/help/idea/json.html#ws_json_schema_add_custom

稍后还详细介绍了如何使 intelesense 提供丰富的预览:

在 JSON 模式中使用 HTML 描述 #

默认情况下,IntelliJ IDEA 在显示时转义 HTML 字符 文档弹出窗口中的 JSON 模式定义文档。到 获得带有丰富 HTML 标记的漂亮文档,存储 HTML x-intellij-html-description 扩展属性中的描述 而不是描述。

https://www.jetbrains.com/help/idea/json.html#ws_json_show_doc_in_html https://www.jetbrains.com/help/idea/json.html#ws_json_show_doc_in_html

然而,

根据另一个属性的键自动完成

听起来像是专门为编写 JSON 模式而设计的自定义功能。 JSON Schema 本身无法像这样动态引用数据(我认为这就是您的想法)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用对象键作为 JSON 架构中的类型 的相关文章

  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 将 JSON 集合发送到 ASMX Web 服务

    我有这门课 public class DesignElements public List
  • 如何使用jq将JSON对象流转换为数组

    我想用jq将 json 对象流放入 json 数组中 例如 来自 a 1 b 2 to a 1 b 2 但这是行不通的 echo a 1 b 2 jq 自从我得到 a 1 b 2 用吸吮它 s option jq s lt lt lt a
  • 根据值匹配数组

    我使用以下代码来解析 yaml 并应得到输出为runners对象和函数build应更改数据结构并根据以下结构提供输出 type Exec struct NameVal string Executer string 这是我尝试过的 但我不知道
  • 在 IntelliJ 中运行 Spark 字数统计

    我花了几个小时浏览 You Tube 视频和教程 试图了解如何在 Scala 中运行 Spark 字数统计程序 并将其转换为 jar 文件 我现在完全糊涂了 我运行了 Hello World 并且了解了如何在 Apache spark sp
  • 如何使用 Gson 跳过空条目

    使用 Gson 反序列化 JSON 时 有没有办法跳过 JSON 数组中的空条目 text adsfsd title asdfsd null text adsfsd title asdfsd 生成的 List 有 3 个条目 第二个条目为空
  • Spring REST 控制器返回带有空数据的 JSON [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个简单的 Spring Boot Web 应用程序 我正在尝试从服务器接收一些数据 控制器返回一个集合 但浏览器收
  • 使用 ruamel.yaml,如何使带有 NEWLINE 的变量成为不带引号的多行

    我正在生成用作协议的 YAML 其中包含一些生成的 JSON import json from ruamel import yaml jsonsample id 123 type customer account other myyamel
  • 在自定义对象中映射 JSON 对象

    我一直在搜索是否可以获取 JSON 字典或数组并将其直接映射到属性与 JSON 标签同名的自定义对象中 但我没有找到任何相关信息 我一直在手动解析 JSON 字典 如下所示 id deserializedObj nil id jsonObj
  • Android - 下载 JSON 数据并保存到共享首选项

    我正在从 PHP 服务读取 JSON 数据 每当该 JSON 的版本发生变化时 我想将其存储在 Android 上 用新数据替换旧数据 JSON 仅用于填充 Spinner 我的问题是 JSON 有 36KB 可以将其存储在共享首选项中有一
  • IntelliJ可以自动创建装饰器类吗?

    有时 我创建一个像这样的装饰器类 class MyInterfaceDecorator implements MyInterface private final MyInterface delegate constructor taking
  • IntelliJ IDEA - 跟踪解决方案资源管理器中的活动项目

    我试图在 IDEA 中找到一个不错的 VS 功能 在解决方案资源管理器中跟踪活动项目 模拟 对于那些不知道的人 当我在主区域中的文件之间切换时 VS 将突出显示解决方案资源管理器中的相应项目 IDEA 中的 项目 窗格 自 2020 1 版
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • dapper 可以反序列化存储为文本的 json 吗?

    public class MyType public int Id get set public int MyArray get set var sql SELECT id MyArrayAsJson as MyArray var x aw
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 使用 VSCode 对某些 YAML 字段进行自定义语法突出显示

    我们的基础设施使用 YML 文件来配置各种流程 例如 非常简化的 配置块可能如下所示 process my process requires other process parameter dockerfile FROM alpine RU

随机推荐

  • 如何在 Angular JS 中显示以字节数组形式接收的图像

    我有一个将返回图像的服务器端应用程序 这些是响应标头 Content Disposition attachment filename 8822a009 944e 43f4 999b d297198d302a 1 0 low res Cont
  • SqlCommand返回值参数

    也许查看此代码的其他人能够告诉我为什么 returnID 始终为 0 我正在尝试从插入的记录中检索新的 ID public int AddToInventory int PartID int QtyOnHand int SpokenFor
  • 使用新数据输入自动更新图表

    我的图表从 DataGridView 加载数据 如果将新值插入到 DataGridView 中 我希望自动使用新数据更新图表 我的图表必然是table1 and table2在我的 DataGridView 中 它从 DataTable 获
  • 从 Harp.js 中的 EJS 模板调用另一个文件上的 javascript 函数

    尝试使用 Harp js 制作一个网站 我使用 ejs 模板 并希望将一些有用的 javascript 函数存储在中央文件中 我怎么做 我尝试使用 但它不起作用 似乎js文件没有被解析 有任何想法吗 谢谢 尽管有多种方法 有时 可以实现这一
  • 如何使用 javascript 选择页面上的任意文本?

    假设我有一个 contentEditablediv 用户可以编辑和更改其中的文本和元素 我如何任意更改此选择div用JavaScript 我所说的 更改 并不是指 更改用户选择的内容 我的意思是实际上更改what被选中 然后 用户应该能够在
  • 如何用C语言测量时间?

    我想知道某个代码块执行了多长时间 大约 像这样的事情 startStopwatch do some calculations stopStopwatch printf lf timeMesuredInSeconds How 您可以使用clo
  • Android 中的 ImageView 拖动限制

    我在布局中有一个 ImageView 并在 ImageView 上设置 OnTouchListener 来拖动 ImageView 它工作得很好 我的问题是如何防止将 ImageView 移动到布局范围之外 这是我的代码 活动类别 publ
  • 如何远程调试长时间运行的 python 脚本或服务?

    正如标题所说 我希望能够连接到在 Paster 或 uwsgi 下运行的 python 进程并利用 pdb 功能 Using winpdb http winpdb org 您可以像这样附加到正在运行的进程 插入 import rpdb2 r
  • 如果我将一个大函数声明为内联函数怎么办?

    我搜索了一些相关问题 例如C 中内联函数的好处 https stackoverflow com questions 145838 benefits of inline functions in c 但我还有疑问 如果内联函数只是为了 为编译
  • 通过 Selenium 捕获 JSON 响应

    我正在使用 Selenium IDE 或 webdriver 测试网页 该网页有一个 搜索 功能 基本上只是一个带参数的 GET 调用 javascript 还输出以控制台从搜索调用返回的 JSON 即类似console log data
  • CSS 3假3D立方体在2个盒子之间旋转

    我使用 css 实现了翻转旋转 flip card position relative z index 1 webkit perspective 1000px moz perspective 1000px o perspective 100
  • 如何在反应导航中将道具传递给“屏幕”/组件

    我对一般编程相当陌生 甚至对 JS 和 React Native 还比较陌生 但我已经为此工作了一整天 但我仍然没有弄清楚 所以我求助于 Stack Overflow 希望有人能帮助我可以帮我 基本上我想要完成的是设置其他Component
  • PHP ajax使用新数组上传多个文件

    它是我的上传 html 代码 div class col xs 12 div
  • Nodemon - 使用配置文件指定扩展监视列表

    有没有办法使用配置文件而不是命令行来指定监视列表 Nodemon 文档中的命令行方法 我尝试使用nodemon json配置文件包含以下内容 ext js json hbs html 返回 扩展名匹配 错误 然后我尝试将配置添加到packa
  • 将 Ember 组件附加到不受 Ember 管理的 DOM 元素

    我想附加一个 Ember 组件ComponentB到由某些非 Ember UI 库生成的 DOM 元素didInsertElement of ComponentA 导致类似的结果 div class ember view component
  • 对 exec 行为有什么解释吗? [复制]

    这个问题在这里已经有答案了 寻找此代码为何引发的良好解释SyntaxError def echo x return x def foo s d exec s d return dict x y for x y in d items def
  • Java RMI 通过互联网

    我正在用 Java 开发一个游戏 使用 RMI 进行所有网络通信 RMI 允许我调用服务器上的方法 但这对我来说还不够 我还希望服务器能够在连接的客户端之间传播消息 我的客户端查找服务器 它的接口扩展了远程 并在其上注册 它允许服务器知道谁
  • __declspec(align) 用于多个声明

    抱歉 这个非常简单的问题 无法在谷歌上找到答案 这个声明语法是 declspec align 16 float rF 4 declspec align 16 float gF 4 declspec align 16 float bF 4 相
  • 如何引用 models.py 之外的信号

    在文档中Django 它指定models py是定位信号回调函数的好地方 post save pre save etc 这段代码应该放在哪里 您可以将信号处理和注册代码放在您喜欢的任何地方 但是 您需要确保它所在的模块获取 尽早导入 以便信
  • 使用对象键作为 JSON 架构中的类型

    假设我想根据 Intellij IDEA 中的 JSON 架构验证 YAML 文件 该文件的结构如下 foo command touch tmp a txt I know I don t need this but it s an exam