我使用Data.Yaml
以人类可读的格式存储一些数据。但是,数据的某些部分是数字列表或矩阵。 YAML输出block sequence style非常详细:
- - 1
- 2
- 3
- - 4
- 5
相反,我希望这些部分能够在flow sequence style中进行编码,就像
一样[[1,2,3],[4,5]]
有办法怎么做?
答案 0 :(得分:11)
不幸的是没有。 yaml
使用libyaml
。虽然您想使用flow sequence style,但current implementation使用YAML_ANY_SEQUENCE_STYLE
(0)代替YAML_FLOW_SEQUENCE_STYLE
(2),因此使用YAML_BLOCK_SEQUENCE_STYLE
(1,但是发射器仅检查与YAML_FLOW_SEQUENCE_STYLE
)的相等性。
这是硬编码到Haskell中的toEventRaw
包装器中。应该可以编写使用特殊encodeWith
的{{1}}并采用其他选项,但目前情况并非如此。 你可以open a feature request,但是feature request。
修改:如果在toEventRawWith
中用Data.Yaml.encode
替换"[[1,2,3], [4,5]]"
的所有0 -- YAML_ANY_SEQUENCE_STYLE
,2 -- YAML_FLOW_SEQUENCE_STYLE
将返回Text/Libyaml.hs
。因此,您需要在本地修补库,或者询问该功能请求。