{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NoImplicitPrelude #-} module Imm.Aeson where -- {{{ Imports import Imm.Prelude import Data.Aeson import URI.ByteString -- }}} parseJsonURI :: MonadPlus m => Value -> m URI parseJsonURI (String s) = either (const mzero) return $ parseURI laxURIParserOptions $ encodeUtf8 s parseJsonURI _ = mzero toJsonURI :: URI -> Value toJsonURI = String . decodeUtf8 . serializeURIRef'