email-validate-json-0.1.0.0: src/Text/Email/Aeson/Instances.hs
module Text.Email.Aeson.Instances where
import Control.Monad (mzero)
import Data.Aeson
import qualified Data.Text.Encoding as TS
import qualified Text.Email.Validate as TEV
instance ToJSON TEV.EmailAddress where
toJSON = String . TS.decodeUtf8 . TEV.toByteString
instance FromJSON TEV.EmailAddress where
parseJSON (String s) = case TEV.emailAddress (TS.encodeUtf8 s) of
Nothing -> mzero
Just x -> return x
parseJSON _ = mzero