Я хочу проанализировать объект JSON и создать JSONEvent с заданным именем
и args
Я использую Aeson, и сейчас я застрял при преобразовании "аргументов": [{"a": "b"}]
в [(String, String)]
.
Заранее спасибо!
{-# LANGUAGE OverloadedStrings #-}
import Control.Applicative
import Data.Aeson
data JSONEvent = JSONEvent [(String, String)] (Maybe String) deriving Show
instance FromJSON JSONEvent where
parseJSON j = do
o <- parseJSON j
name <- o .:? "name"
args <- o .:? "args" .!= []
return $ JSONEvent args name
let decodedEvent = decode "{\"name\":\"edwald\",\"args\":[{\"a\": \"b\"}]}" :: Maybe JSONEvent