Я пытаюсь разобрать значения JSON с помощью Aeson, и у меня нет проблем (до сих пор) разбирать объекты или массивы, но я не могу заставить Aeson анализировать JSON-документы, которые являются только строками.Разбирать значение верхнего уровня с помощью Aeson
Как я понимаю, поскольку значения RFC 7159 являются законными документами JSON, и Aeson поддерживает это с 0.9.0.0 (я использую 0.9.0.1), поэтому он должен работать. Например, я обертывание API, который возвращает строки как JSON документы верхнего уровня для многих своих вызовов, и хотел бы NewType этих строк для некоторой статической безопасности типизации:
newtype Bar = Bar String deriving (Eq, Show)
instance FromJSON Bar where
parseJSON (String v) = pure (Bar $ T.unpack v)
parseJSON _ = mzero
Если я пытаюсь расшифровать что-то :
decode "JustSomeRandomString" :: Maybe Bar
все, что я получаю, это Nothing
в обмен.
Любые идеи, что я делаю неправильно? Конечно, я мог бы обрабатывать вызовы API, которые возвращают строки как документы JSON без Aeson, но хотели бы, чтобы все было равномерно!
Не могу поверить, что я пропустил, что я просто скопировал локон выход из консоли и работал с этим. API, который я использую, сломан, он не переносит строки в кавычки ... – kmelva