【发布时间】:2021-12-02 17:57:33
【问题描述】:
有没有办法在 YAML 中对对象进行字符串化?我正在寻找这样的东西:
YAML 输入:
environment: @stringify(
foo: buz,
bar: 42,
)
预期的 JSON 输出:
{"environment": "{\"foo\": \"buz\", \"bar\": 42}"}
我可以当然这样做:
environment: '{
"foo": "buz",
"bar": 42
}'
但这有几个问题:
- 没有语法检查。 YAML 会愉快地编译,JSON 中的任何语法错误都会在“下游”发生。
-
不支持 YAML。我无法在内部插入对象(例如
<<: *myObj)。 - 额外的空格。文本中的换行符可能会导致问题,尤其是当文件以 CLRF 结尾编写时。
- 仅限严格 JSON。“额外”JSON 功能(如尾随逗号或 cmets)不会被删除,这是“下游”的额外工作。
注意:我将它用于docker-compose,所以如果您有针对docker-compose 的解决方案,那也可以。
【问题讨论】:
标签: json docker-compose yaml