我正在使用Symfony YAML组件来解析Flexget配置文件。但是,有时它会将电视节目序列转换为编号列表,而实际上它应该是带有短划线-
的列表。
错误的例子:
templates:
tv:
private_torrents: no
regexp:
accept:
12: 'Absolute Duo'
13: 'Yuri Kuma Arashi'
14: 'Miritari!'
...
正确的例子:
templates:
tv:
private_torrents: no
regexp:
accept:
- 'Absolute Duo'
- 'Yuri Kuma Arashi'
- 'Miritari!'
...
如何防止这种情况发生?
这是我将YAML转储到文件的方式:
$config = Yaml::dump($this->config, 99, 2);
我使用99
因为我从不想要内联配置。
我要转储的配置:
array (size=2)
'templates' =>
array (size=1)
'tv' =>
array (size=4)
'private_torrents' => string 'no' (length=2)
'regexp' =>
array (size=1)
'accept' =>
array (size=9)
0 => string 'Shingeki no Bahamut' (length=19)
1 => string 'Sora no Method' (length=14)
2 => string 'Gugure! Kokkuri-san' (length=19)
3 => string 'Majin Bone' (length=10)
4 => string 'Grisaia no Kajitsu' (length=18)
5 => string 'Queen's Blade Rurou no Senshi' (length=29)
6 => string 'Daitoshokan no Hitsujikai' (length=25)
7 => string 'Trinity Seven' (length=13)
8 => string 'Akame ga Kill!' (length=14)
答案 0 :(得分:1)
您是否会发布您正在转储的配置输入?
另外,我猜这个问题的唯一原因是你的输入被认为是一个哈希,看看这一行显示如果你的数组不包含从0到count-1的键,你的输入将被考虑作为哈希:
https://github.com/symfony/Yaml/blob/master/Dumper.php#L57
如果将其视为哈希值,而不是输出"-"
,则会输出"key: value"
yaml