Я пытаюсь использовать aeson для анализа json, возвращаемого API. Ответ извлекается из конечной точки API с помощью wreq. При запуске любого декодирования в этой строке я получаю:
Left "Failed reading: Cannot decode byte '\\xa3': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream"
Вероятно, это связано с тем, что я неправильно понимаю кодировку текста, но мне кажется, что строка, возвращаемая API, на самом деле не является допустимой json. Если да, то как мне поступить? В любом случае, я был бы признателен, если бы кто-то указал мне правильное направление!
Я включил пример, который воспроизводит мою проблему ниже.
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
import Data.Aeson
import Data.Text
import GHC.Generics
import Data.ByteString.Lazy
data Test = Test { priceDescription ∷ Text } deriving (Show, Generic)
instance FromJSON Test
main = do
let a = "\r\n{\r\n\"priceDescription\": \"\163\&5.98 each\"\r\n}" :: ByteString
let result = eitherDecode a :: Either String Test
print result