Haskell Aeson将数组转换为对象
最好的方法是什么 Data.Aeson FromJSON实例 将数组转换为对象:Haskell Aeson将数组转换为对象,haskell,Haskell,最好的方法是什么 Data.Aeson FromJSON实例 将数组转换为对象: import Data.Aeson data MixArray = MixArray {
import Data.Aeson
data MixArray = MixArray {
vStr :: String,
vNum :: Int,
vBool :: Bool
} deriving Show
main = do
jsonStr = ["a",1,true]
mix <- eitherDecode $ jsonStr :: IO (Either String [MixArray])
show mix
您可以对列表和类型重用
FromJSON
实例,然后在模式匹配后构造您的类型。如果模式匹配失败,解析器将失败
import Data.Text (unpack)
instance FromJSON MixArray where
parseJSON jsn = do
[String s, Number n, Bool b] <- parseJSON jsn
return MixArray { vStr = unpack s, vNum = truncate n, vBool = b }
导入数据.Text(解包)
来自JSON MixArray的实例,其中
parseJSON jsn=do
[字符串s,数字n,布尔b]
import Data.Text (unpack)
instance FromJSON MixArray where
parseJSON jsn = do
[String s, Number n, Bool b] <- parseJSON jsn
return MixArray { vStr = unpack s, vNum = truncate n, vBool = b }