为什么不按预期解析YAML?

时间:2012-12-20 21:26:36

标签: php yaml

我有以下一点YAML我试图用SPYC解析(https://github.com/mustangostang/spyc/):

children:
    - root:
        - child one
        - child two:
            - subchild one
            - subchild two
        - child three

我希望它会返回类似的内容:

["children"]=>array(1){
    ["root"]=>array(3){
        [0]=>string(9) "child one",
        ["child two"]=>array(2){
            [0]=>string(12) "subchild one"
            [1]=>string(12) "subchild two"
        }
        [1]=>string(11) "child three"
    }
}

相反,它返回类似这样的东西(包含似乎是一堆空的和不必要的数组):

array(4) {
  [0]=>
  array(4) {
    ["root"]=>
    array(0) {
    }
    [0]=>
    string(9) "child one"
    [1]=>
    array(3) {
      ["child two"]=>
      array(0) {
      }
      [0]=>
      string(12) "subchild one"
      [1]=>
      string(12) "subchild two"
    }
    [2]=>
    string(11) "child three"
}

我构建我的YAML内容的方式可能有问题,或者SPYC(解析器)是否存在已知问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是将生成您正在寻找的结构的YAML

children:
    root:
        child one
        child two:
            subchild one
            subchild two
        child three

在您的初始YAML中,-表示您正在启动列表/数组。 例如,这个YAML

items:
    - id: 1
      name: ABC

    - id: 2
      name: CDB

产生

[items] => Array
    (
        [0] => Array
            (
                [id] => 1
                [name] => ABC
            )

        [1] => Array
            (
                [id] => 2
                [name] => CDB
            )

    )