我最近开始与Haskell玩,似乎无法找出这一个。Haskell从YAML文件中读取嵌套的时间戳
我试图从具有这种格式的YAML文件读取:
id: 1
kind: good
created_at: !ruby/object:ActiveSupport::TimeWithZone
utc: &1 2017-01-01 10:34:12.533704000 Z
zone: &2 !ruby/object:ActiveSupport::TimeZone
time: *2
到目前为止,我可以做这个读取ID和那种完美的罚款:
data Item= Item{
id :: Integer,
kind::String
}
而且
instance FromJSON Item where
parseJSON(Object v) = Item <$>
v .: "id" <*>
v .: "kind"
我正在使用软件包“Data.Yaml”,此功能:
let items = Data.Yaml.decode ymlData :: Maybe[Item]
但我似乎无法弄清楚如何获得时间戳。
什么是获得时间戳的正确方法,只需要“utc”。
我看到的第一个问题是你必须大写你的类型和构造函数,所以'data Item = Item ...'和'instance FromJSON Item where ...'。我认为你的问题实际上是关于如何访问嵌套元素,这是你真正想问什么?这个问题似乎并不是关于获取时间戳,而是关于如何在YAML中使用嵌套结构。 – bheklilr
@bheklilr谢谢你的回应,是的,你是对的。这个问题的确应该是:“如何访问嵌套元素?” – QuickQuestionGuy
您是否使用[* yaml *包](https://hackage.haskell.org/package/yaml-0.8.9/docs/Data-Yaml.html)?如果是这样,你应该在问题中提到它。 (顺便说一下,你可以编辑它来添加说明。) – duplode