aeson

    1熱度

    1回答

    我正在爲大學課程REST API我的記錄只有一個字段: data Course = Course { id :: Maybe Text, name :: Text, deleted :: Bool } deriving(Show, Generic) instance FromJSON Course instance ToJSON Course 我想允許de

    1熱度

    1回答

    我對Haskell來說相當新,所以我的意思是缺少一些簡單的東西。現在,我只是想從stdin中讀取一些JSON,並將AST作爲概念證明。 module JSONStuff where import qualified Data.Aeson as JSON import qualified Data.ByteString.Lazy.Char8 as Char main :: IO() ma

    2熱度

    1回答

    我需要解析不具有嚴格的結構JSON API響應: { response: { /* any object here */ } } 怎麼可能寫出parseResponse將離開解析能力(或爲它選擇一個分析器)供以後使用? 我最後一次嘗試如下。我不喜歡它,因爲它不允許選擇響應類型,如Aeson的decode所做的那樣。 data APIResponse = APIResponse {

    0熱度

    1回答

    我正在編寫一個使用Github Webhooks API的應用程序。 在掛機消息我得到這個JSON結構:http://organicorange.ro:8000/set 我做的類型聲明是這樣的: newtype CommitList = CommitList {commitList :: [Commit]} instance FromJSON CommitList where par

    1熱度

    1回答

    此代碼將遞歸JSON結構解析爲我所做的haskell對象。我正在使用Aeson庫。我遇到的問題是我希望能夠輕鬆地進行錯誤檢查,即使是遞歸調用。現在,當發生錯誤時,我使用一個虛擬值(ayyLmao)。不過,我想利用從Parser monad獲得的錯誤檢查。我怎麼能做到這一點,並可能在這個過程中清理我的代碼?如果有必要,我也可以發佈一些示例JSON。 編輯:我想指出,我想擺脫「ayyLmao」(因此愚

    9熱度

    1回答

    我試圖讓一個簡單的Json解析器啓動並運行在我的Haskell代碼中,我遇到了Data .Aeson這似乎是一個可行的解決我的問題 我跟着example code on the page,並與一些小的修改,這裏就是我的了: {-#LANGUAGE OverloadedStrings #-} import Data.Aeson import Data.Text import Control.

    4熱度

    1回答

    今天我想解決下一個問題。 假設我們有類型類定義爲 class DataWithDefault a where defaultValue :: a DataWithDefault而我們定義爲 data Example = Example { field1 :: Text , field2 :: Text } deriving (Show) in

    2熱度

    1回答

    我試圖解析一些書目數據,更具體地說,拉出每個項目的「主題」字段。該數據是JSON和看起來是這樣的: {"rows": [ {"doc":{"sourceResource": {"subject": ["fiction", "horror"]}}}, {"doc":{"sourceResource": {"subject": "fantasy"}}} ]} 我可以拉出

    7熱度

    1回答

    我試圖從RESTful API中解析JSON。返回的JSON高度嵌套,可能/可能不包含某些字段。下面是一些例子返回的數據: { resultSet : { location : [{ desc : "Tuality Hospital/SE 8th Ave MAX Station", locid : 9843, dir : "Ea

    2熱度

    1回答

    我一直在砸我的腦袋,試圖用艾森解析Bitly的反應。 可能有人給我一個提示,什麼類型的Haskell應該定義 以及如何使用埃宋來然後解析以下爲那些類型?: // BITLY EXPAND RESPONSE { "data": { "expand": [ { "global_hash": "900913", "long_url": "http