我Data.Yaml
用来以人类可读的格式存储一些数据.但是,数据的某些部分是数字列表或矩阵.YAML输出,块序列样式,非常详细:
- - 1 - 2 - 3 - - 4 - 5
相反,我希望这些部分以流程序列样式进行编码,就像
[[1,2,3],[4,5]]
有办法怎么做?
不幸的是.yaml
用途libyaml
.虽然您希望使用流序列样式,但当前实现使用YAML_ANY_SEQUENCE_STYLE
(0)而不是YAML_FLOW_SEQUENCE_STYLE
(2),因此YAML_BLOCK_SEQUENCE_STYLE
(1,但发射器仅检查相等YAML_FLOW_SEQUENCE_STYLE
).
这被硬编码到toEventRaw
Haskell中的包装器中.应该可以编写encodeWith
,使用特殊的toEventRawWith
并采用其他选项,但目前情况并非如此.你可以打开一个功能请求,但是有一个功能要求.
编辑:的确,Data.Yaml.encode
将返回"[[1,2,3], [4,5]]"
如果替换出现的所有0 -- YAML_ANY_SEQUENCE_STYLE
同2 -- YAML_FLOW_SEQUENCE_STYLE
在Text/Libyaml.hs
.因此,您需要在本地修补库,或者询问该功能请求.