无法解码yml文件中的数据

时间:2016-03-20 22:33:11

标签: haskell yaml config

我想从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,并为其实施FromJSONToJSON,即使在我的情况下,它只是String loadImage()场?或者是我的代码中的其他地方的问题?

1 个答案:

答案 0 :(得分:0)

  

我是否必须从some_value创建数据并为其实施FromJSONToJSON,即使在我的情况下,它只是一个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"