我想从yml文件中读取一些基本设置。这是我的尝试:
#config.yml
some_value: "fdsfdsfd"
#.hs
yamlData <- BS.readFile "./config.yml"
let var1 = Data.Yaml.decode yamlData :: Maybe String
print $ "the key is " ++ fromJust var1
返回Maybe.fromJust: Nothing
。我是否必须从data
创建some_value
,并为其实施FromJSON
和ToJSON
,即使在我的情况下,它只是String
loadImage()
场?或者是我的代码中的其他地方的问题?
答案 0 :(得分:0)
我是否必须从
some_value
创建数据并为其实施FromJSON
和ToJSON
,即使在我的情况下,它只是一个String
字段?
是
也就是说,如果您不想设置自己的Value
实例,有一个通用的东西(yaml
)可以将简单的FromJSON
数据解码为:
Prelude Data.Yaml> Data.Yaml.decode "some_value: \"fdsfdsfd\"" :: Maybe Value
Just (Object fromList [("some_value",String "fdsfdsfd")])
此外,如果我们只想要统一键入的键值对,我们可以解码为HashMap
,我们得到以下内容:
> Data.HashMap.Strict.lookup ("some_value" :: Text) =<< Data.Yaml.decode "some_value: \"fdsfdsfd\"" :: (Maybe String)
Just "fdsfdsfd"