@mirexdoors

Как правильно обьявить типы при парсинге json?

Здравствуйте, я новичок в хаскеле! Задача в следующем: я получаю список из json следующим образом.
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
import Data.Aeson
import qualified Data.ByteString.Lazy as B
import GHC.Generics

data DayHealthItem = DayHealthItem { summary_date :: String,
                                     period_id :: Int,
                                     is_longest :: Int,
                                     timezone :: Int
                                  } deriving (Generic, Show)

instance FromJSON DayHealthItem

main = do
  input <- B.readFile "mock/data.json"
  let maybeDecodedJSON = decode input :: Maybe [DayHealthItem]
  case maybeDecodedJSON of
    Nothing -> error "error parsing JSON"
    Just decodedJSON -> (putStrLn.show) decodedJSON

Вопрос в том, как мне правильно обьявить типы, чтобы потом с этими данными управляться, То есть, применять к ним все функции списков, потому что если я в последней строке делаю что-то типа:

...
    Just decodedJSON -> (putStrLn.head) decodedJSON

то получаю ошибку :
Couldn't match type ‘DayHealthItem’ with ‘[Char]’
      Expected type: [String]
        Actual type: [DayHealthItem]
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы