我正在尝试在haskell中使用Aeson JSON库。现在,我只需要使用“decode”来读取JSON转储。
import Data.Aeson
import Data.ByteString as BS
import Control.Applicative
main :: IO ()
main = print $ decode <$> BS.readFile "json"
尝试编译/运行时出现以下错误:
Couldn't match type 'ByteString'
with 'Data.ByteString.Lazy.Internal.ByteString'
NB: 'ByteString is defined in 'Data.ByteString.Internal'
'Data.ByteString.Lazy.Internal.ByteString'
is defined in 'Data.ByteString.Lazy.Internal.ByteString
这个错误对我没有意义。我尝试导入ghc描述的文件,但导入失败或无法解决问题。 感谢
答案 0 :(得分:2)
ByteString
有两种变体:由Data.ByteString
导出的严格(默认值)和由Data.ByteString.Lazy
导出的惰性变体。
Aeson在惰性字节字符串之上工作,因此您应该将第二行更改为
import Data.ByteString.Lazy as BS