我正在尝试使用Aeson库加载json。问题是我想要加载它的数据结构包含的字段多于json。
data Resource = Res {
name :: String,
file :: FilePath,
res :: Picture,
loaded :: Bool
} deriving (Generic, Show)
json中只有名称和文件字段可用。图片是光泽图片,因此无法从json加载。
我无法弄清楚如何省略res并从FromJSON实例中加载。
答案 0 :(得分:4)
如果您无法从JSON加载该结构,那么请不要这样定义它!做到这一点
data ResourceRef = ResRef
{ name :: String
, file :: FilePath
} deriving (Generic, Show)
可以从JSON轻松加载。然后你可以有一个额外的
data Resource = Res
{ resName :: String
, resFile :: FilePath
, res :: Picture
} deriving (Generic, Show)
...从未与JSON联系过。并实施
loadResource :: ResourceRef -> IO Resource