2014-10-01 83 views
0

我跟着文檔,並嘗試:解析JSON動態與Data.Aeson

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

我得到:

沒有實例(FromJSON B0)從使用的.:' In a stmt of a 'do' block: name <- obj .: "name" In the expression: do { name <- obj .: "name"; return name } In the second argument of產生($)」,即'\ obj - > do {name < - obj。:「name」; return name}'

如何正確地做到這一點?我究竟做錯了什麼?

回答

1

FromJSON b0表示此時此類型不固定。但是,如果您修復該類型,例如對於String,則它將起作用:

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