Я пытаюсь кодировать Base64 в JSON. Я столкнулся с диалогом this. Я заметил, что snoyberg уже включил Base64
newtype
в кодовую базу FP Complete, поэтому я решил попробовать.Является ли мой экземпляр ToJSON Base64 разумным? Как выглядит экземпляр FromJSON?
импорта квалифицированы как В Data.ByteString
импорт квалифицированных Data.ByteString.Base64 как В64
Newtype Base64 = Base64 {toByteString :: B.ByteString}
выводе (уравнение, Ord, Show, IsString)
ToJSON
экземпляр казался достаточно простым. Я был бы признателен за проверку здравомыслия.
экземпляр ToJSON Base64, где toJSON (Base64 шс) =
toJSON $ B.unpack $ B64.decodeLenient шс
Экземпляр FromJSON где я столкнуться с проблемами.
Изучение других примеров Предполагаю, что я должен использовать withArray
, который хочет (Array -> Parser a)
. Здесь я застреваю.
parseBase64 :: Array -> Parser
parseBase64 (Array а) = ...
Я пробовал много подходов здесь, я запутался, что должно произойти здесь, или даже если я на правильном пути вообще. Если бы я мог получить некоторую обратную связь так же просто, как «вы на правильном пути, продолжайте идти» или укажете в другом направлении, это будет оценено по достоинству.