🦁

YAML で JSON Schema を書く

2024/09/19に公開

VSCode の Red Hat が提供している YAML 拡張を使うと、YAML ファイルにマジックコメントを書くか設定ファイルで定義することで、YAML ファイルに JSON Schema を適用できます。

https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml

マジックコメントで書く例:

# yaml-language-server: $schema=http://json-schema.org/draft-07/schema

$schema: http://json-schema.org/draft-07/schema
title: "JSON Schema Sample"
type: object
properties:
  name:
    type: string
  age:
    type: integer

詳細は以下のリンクを参照してください。

https://github.com/redhat-developer/vscode-yaml?tab=readme-ov-file#associating-schemas

実際にこの JSON Schema として使う場合は、JSON ファイルの都合がいいので、yq コマンドなどを使って変換するといいでしょう。

https://github.com/mikefarah/yq

変換コマンド例:

yq --output-format=json sample.yaml

変換結果:

{
  "$schema": "http://json-schema.org/draft-07/schema",
  "title": "JSON Schema Sample",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "age": {
      "type": "integer"
    }
  }
}

Discussion