私はサーバーからJSON文字列を取り出し、解析し、データで何かをする単純なHaskellプログラムに取り組んでいます。具体的な内容は現時点では適切ではありませんが、私が抱えている問題は返されたJSONを解析することです。HaskellでJSON文字列を解析する
JSON文字列をサーバからIO String
タイプとして返します。その文字列をJSONオブジェクトに解析する方法を理解できていないようです。
助けを借りていただければ幸いです。
ここまでは私のコードです。
import Data.Aeson
import Network.HTTP
main = do
src <- openURL "http://www.reddit.com/user/chrissalij/about.json"
-- Json parsing code goes here
openURL url = getResponseBody =<< simpleHTTP (getRequest url)
注:私はそれを推奨しているように見えるものですと、しかし、私は別のライブラリを使用して喜ん以上になると思い例でData.Aeson
を使用しています。
また、このコードの一部または全部を変更することができます。
これは、あなたを抱きしめていることをより具体的にするのに役立ちます。 IOモナドから文字列を取り出していますか?それとも、構文解析の仕組みですか? (後者の場合は、RWHをチェックしてください - JSONの解析に関する全章があります)FWIW、ByteStringライブラリを学ぶのは長期的な価値があります。ハスケルの文字列は非常に遅いです。 – rtperson
@rtperson。文字列は解析に自動的には遅くはありません。文字列はCharのリストなので、頭の中で自然と効率的に破壊をサポートします。これはまさに解析に必要なものです。もちろん、Charのリストは、メモリ使用に関する一般的なテキストの表現が貧弱です。 –
@rtpersonそれは本質的に両方です。私はハスケルには新しく、他のいくつかの言語でJSON構文解析を行っていますが、Haskellの仕様は私には分かります。 –