Github Webhooks API를 사용하는 앱을 작성 중입니다. 나는 목록을 반환 할 수있는 "수정"배열을 분석 할 수있는 방법AESON을 사용하여 중첩 JSON에서 Array를 읽는 방법
newtype CommitList = CommitList {commitList :: [Commit]}
instance FromJSON CommitList where
parseJSON (Object o) = CommitList <$> o .: "commits"
parseJSON _ = mzero
data Commit = Commit {ids :: String, message :: String, url :: String, modified :: [String], author :: Auth} deriving (Show)
instance FromJSON Commit where
parseJSON (Object o) = Commit <$> o .: "id" <*> o .: "message" <*> o .: "url" <*> o .: "modified" <*> o .: "author"
parseJSON _ = mzero
data Auth = Auth {name :: String, email :: String, username :: String} deriving (Show)
instance FromJSON Auth where
parseJSON (Object o) = Auth <$> o .: "name" <*> o .: "email" <*> o .: "username"
parseJSON _ = mzero
: http://organicorange.ro:8000/set
내가 이런 유형 선언을하고있는 중이 야 :이 JSON 구조를 가지고 후크 메시지에서 ?
구현이 작동하지 않습니까? GHCi 테스트에'Auth' 섹션을 포함시키지 않았지만 이미'FromJSON a => FromJSON [a]'의 인스턴스가 있습니다. – bheklilr
예, 코드를 복사/붙여 넣기하고 제공된 JSON 샘플을 사용하여 파싱을합니다. 당신의 질문은 정확히 무엇입니까? – bheklilr
시간 내 주셔서 감사합니다. 이 구성에서 JSON에서 "수정 된"배열을 구문 분석하려고하면 [String []] [: [[ "src/FullBG/index.html", "src/Main.hs", "src/app .json "]]'내가 필요한 것은'["src/FullBG/index.html ","src/Main.hs ","src/app.json "]'같은 구성 요소를 가진 목록입니다. 덕분에 –