簡體   English   中英

在 jsonschema 中使用(標量)變量來動態設置屬性,例如標題

[英]Use (scalar) variables in jsonschema to dynamically set attribute, e.g. title

我正在使用 Google Cloud 部署管理器來管理基礎架構即代碼 (IAC),它們支持提供用於描述 IAC 模板的架構文件。 他們對 jsonschema 的支持有點奇怪 - 文檔非常簡短,但它表明他們支持最新版本的架構,並且他們需要標題和描述在信息對象中。

這很煩人,因為我為我的模式使用了 HTML 渲染器,它實現了 jsonschema,因此,它需要將標題和描述設置為頂級屬性。

為了滿足兩者,我需要復制,例如:


title: foo
description: bar

info:
  title: foo
  description: bar

我希望只定義一次標題和描述值,然后使用一些$ref: "#/$defs/title"魔法,但我認為您不能使用它來動態設置標題等值,因為此功能旨在模式解析器從其他地方獲取塊內容。

有什么方法可以避免重復值 - 除了動態呈現我不想做的模式文件之外。

據我所知,無法在 json 模式中使用引用。
作為一種粗略的解決方法,您可以使用腳本來添加/替換占位符:

#!/bin/bash
sed -i 's/\$title/title: foo/g' file.json
sed -i 's/\$desc/description: bar/g' file.json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM