にパーサの外に値を取得するために、私はIOでの解析JSONをやろうとしている:ハスケルアイソーン:どのようにIOモナド
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Simple
import Data.Aeson
import Data.Maybe (fromJust)
main :: IO()
main = do
response <- getResponseBody <$> httpJSON "http://localhost:9200" :: IO Object
name <- fromJust <$> response .: "name" :: Parser String
print "hi"
私はエラーを取得する:
/home/nut/dev/haskell/elastic/app/Main.hs:39:11: error:
• Couldn't match type ‘Parser’ with ‘IO’
Expected type: IO String
Actual type: Parser String
• In a stmt of a 'do' block:
私は、どのようにjsonの結果からname
を取得しますか?
を行うことができます
を持っている: "名前"'で'IO'ですが、' Parser'値です。私はAesonにはあまりよく慣れていませんが、(Data.Aeson.Types.parse'または 'parseMaybe'を使って)純粋にパーサを実行する必要があると思います。 –