@@ -120,8 +120,6 @@ import Control.Applicative ( Const(Const), (<|>), (<$>), pure, (*>), (
120120import Control.Concurrent.MVar (MVar , newMVar )
121121import Control.Exception (Exception )
122122import qualified Data.Aeson as JSON
123- import qualified Data.Aeson.Internal as JSON
124- import qualified Data.Aeson.Parser as JSON (value' )
125123import Data.Attoparsec.ByteString.Char8 hiding (Result )
126124import Data.ByteString (ByteString )
127125import qualified Data.ByteString.Char8 as B
@@ -156,6 +154,12 @@ import qualified Data.UUID.Types as UUID
156154import Data.Scientific (Scientific )
157155import GHC.Real (infinity , notANumber )
158156
157+ #if MIN_VERSION_aeson(2,1,2)
158+ import qualified Data.Aeson.Types as JSON
159+ #else
160+ import qualified Data.Aeson.Internal as JSON
161+ #endif
162+
159163-- | Exception thrown if conversion from a SQL value to a Haskell
160164-- value fails.
161165data ResultError = Incompatible { errSQLType :: String
@@ -574,7 +578,7 @@ instance FromField UUID where
574578-- | json, jsonb
575579instance FromField JSON. Value where
576580 fromField f mbs = parseBS =<< fromFieldJSONByteString f mbs
577- where parseBS bs = case parseOnly ( JSON. value' <* endOfInput) bs of
581+ where parseBS bs = case JSON. eitherDecodeStrict' bs of
578582 Left err -> returnError ConversionFailed f err
579583 Right val -> pure val
580584
0 commit comments