我正在尝试使用Symfony Yaml dump
函数输出一些嵌套的php数组数据。
use \Symfony\Component\Yaml\Yaml;
echo Yaml::dump([
'arr'=>[],
'foo'=>'bar',
]);
但是,转储的YAML包含一个空对象:
arr: { }
foo: bar
虽然我想要一个空列表:
arr: []
foo: bar
我尝试使用Yaml::DUMP_OBJECT_AS_MAP
标记,使用ArrayObject
代替数组文字,并使用EmptyIterator
,但都无济于事。
我发现了两个与此相关的已解决的错误:https://github.com/symfony/symfony/issues/9870和https://github.com/symfony/symfony/issues/15781,但是那里的解决方案似乎不起作用,或者根据我的口味有点过于苛刻和脆弱(str_replace on the YAML输出,brrrr)
我有一个简单的测试用例,其中包含我迄今为止所尝试的内容:https://github.com/ComaVN/php-yaml-empty-array
有关如何解决此问题的任何建议吗?
答案 0 :(得分:2)
从Symfony 3。3(2017年5月发布)开始,您可以使用新的Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE
选项:
Yaml::dump($object, 2, 4, Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE);
此功能已添加到PR 21471。
答案 1 :(得分:-2)
尝试将其放在某些形式的引号中,以便以后可以提取它?
'arr'=>'[]',