修改YAML解析Truthies和Falsies

时间:2015-08-08 13:26:22

标签: php arrays yaml

我正在处理一个表单,在提交时,数组通过Spyc YAML库运行以从数组中转储YAML文件。我的问题是我的一个字段可能会收到“Y”的输入,并且在测试此YAML时将y转换为1表示为true。

进一步看,他们实际上将“是”的任何变体转换为1.在解析为YAML以保持Y的字符串值之前,我能做些什么?

1 个答案:

答案 0 :(得分:2)

YAML只会尝试以这种方式解释非引用标量。例如。仅为数字的标量变为整数,形式为00:04:03的标量(这将成为整数243)。以类似的方式解释可能是布尔值的非引用标量(YYesNo等。)

为了防止这种情况,请引用标量:"Y"始终是YAML中的字符串。

您可以做的另一件事是查看符合1.2规范的解析器。布尔值可以写为“是”不再在YAML 1.2规范中(它在1.1中),但是大多数解析器将向后兼容,即使源明确标有%YAML 1.2指令。 / p>