【发布时间】:2017-03-09 23:06:32
【问题描述】:
如果我有一个数组["addTask", {"id": "1", "description": "d", "dependsOn": [], "dependentTasks": []}]。
data Task = Task
{ id :: String
, description :: String
, dependsOn :: [String]
, dependentTasks :: [String]
} deriving (Eq, Show, Generic, ToJSON, FromJSON)
type Change = Storage -> Storage
addTask :: Task -> Change
addTask (Task id desc dep dept) = insert id (Task id desc dep dept)
我怎样才能创建一个解析器来生成一个 addTask 呢?
instance FromJSON (Storage -> Storage) where
parseJSON (Array v) = do
name <- parseJSON $ v V.! 0 :: Just String
task <- parseJSON $ v V.! 1 :: Just Task
return (addTask task)
这是我目前的尝试,但不起作用。
【问题讨论】:
-
如果您的尝试不起作用 - 请描述您遇到的错误/行为与预期
标签: json haskell serialization aeson