В самой последней спецификации YAML (вы ссылаетесь на что-то замененное 9 лет назад) говорится:
Правила разрешения тегов для конкретного приложения должны быть ограничены разрешением неспецифического тега «?», Чаще всегодля разрешения простых скаляров.Они могут быть сопоставлены с набором регулярных выражений, чтобы обеспечить автоматическое разрешение целых чисел, чисел с плавающей точкой, временных отметок и подобных типов.
Логическое значение является одним из этих "похожих типов".Поэтому True
будет интерпретироваться как логическое значение, а "True"
или 'True'
(потому что это не простые скаляры) как строки.
В устаревшей спецификации YAML 1.1 Yes
и On
(иих противоположности (и все они в заглавных буквах, все строчные) также интерпретировались как логические значения, но это понятие было исключено из спецификации 1.2.
Таким образом, вы хотите представить строку «Да» (безкавычки) в качестве значения, и если вы уверены, что ваши данные будут прочитаны анализатором, обновленным после 2009 года, то вы можете использовать простой скаляр, одинарные кавычки, двойные кавычки или, например, литеральный скаляр блочного стиля (предполагая последовательность ссопоставления одного ключа / значения с ключом [1, 2]
):
- [1, 2]: Yes
- [1, 2]: 'Yes'
- [1, 2]: "Yes"
- [1, 2]: |
Yes
Все, кроме первого, также будут работать с анализатором, который поддерживает только стандарт YAML 1.1.Конечно, вы можете убедиться, что последующая обработка «знает» о том, что вы ожидаете, явно запустив документ с помощью директивы YAML и индикатора конца директивы
%YAML 1.2
---