我正在處理簡單的Haskell程序,該程序從服務器獲取JSON字符串,對其進行解析並對數據執行某些操作。具體細節暫時並不相關,我遇到的麻煩是解析返回的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 monad中獲取字符串嗎?或者它是解析的機制? (如果是後者,請查看RWH - 有關於解析JSON的全部章節。)FWIW,長期學習ByteString庫是值得的。 Haskell字符串非常緩慢。 – rtperson
@rtperson。字符串不會自動緩慢解析。由於字符串是Char的列表,它們自然而有效地支持頭部解構 - 這正是解析需要的。當然,Char列表是關於內存使用的一般文本的不好表示。 –
@rtperson它本質上都是。我是Haskell的新手,所以當我用其他幾種語言完成JSON解析時,Haskell的具體細節已經接近我。 –