我正在使用YAML配置文件,并且已经为我的数据类型提供了所有必需的ToJSON / FromJSON实例。一切都很好,除了有很多重复的字段,所以我想在导出过程中自动为它们制作别名(并用别名替换它们的所有进一步出现)。
而不是
- security: &securityAlias1
security_level: authNoPriv
auth_password: ! 'mypassword'
username: myuser
auth_protocol: MD5
private_protocol: None
private_password: None
- security: *securityAlias1
...
我想得到
class Questionnaire(models.Model):
YES_NO_CHOICES = (
(1, 'Yes'),
(0, 'No'),
)
satisfaction = models.SmallPoistiveIntegerField(choices=YES_NO_CHOICES, default=1)
register = models.DateField(auto_now_add=True)
如何在Haskell中实现这一目标?
答案 0 :(得分:1)
不幸的是,当前的yaml
版本只能在解析过程中理解别名。它不会在Value
中保护它们,因为它使用Data.Aeson.Value
来存储YAML值。
在大多数情况下,YAML内容直接转换为JSON,因此几乎没有数据丢失。 如果你需要更直接地处理YAML(例如,直接处理别名),你应该使用Text.Libyaml模块。 [强调我的]
这意味着您必须使用Text.Libyaml.Event
界面并亲自浏览事件。