使用Data.Aeson动态解析json

时间:2014-10-01 10:33:42

标签: json haskell

我按照文档尝试:

let st = do result <- decode "{\"name\":\"Dave\",\"age\":2}" --bss
            flip parseMaybe result $ \obj -> do
                     name <- obj .: "name"
                     return name

我明白了:

  

使用.:' In a stmt of a 'do' block: name <- obj .: "name" In the expression: do { name <- obj .: "name"; return name } In the second argument of($)'产生的(FromJSON b0)没有实例,即`\ obj         - &GT; do {name&lt; - obj。:“name”;                返回名称}'

怎么做得好?我做错了什么?

1 个答案:

答案 0 :(得分:1)

FromJSON b0表示此时类型不固定。但是,如果你修改了类型,例如String,它就会起作用:

let st = do result <- decode "{\"name\":\"Dave\",\"age\":2}"
            flip parseMaybe result $ \obj -> do
                     name <- obj .: "name"
                     return (name :: String)
相关问题