diff --git a/core-data.cabal b/core-data.cabal
--- a/core-data.cabal
+++ b/core-data.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           core-data
-version:        0.3.0.0
+version:        0.3.0.1
 synopsis:       Convenience wrappers around common data structures and encodings
 description:    Wrappers around common data structures and encodings.
                 .
@@ -42,7 +42,7 @@
       lib
   ghc-options: -Wall -Wwarn -fwarn-tabs
   build-depends:
-      aeson >=2.0.1
+      aeson >=1.5 && <2 || >=2.0.1
     , base >=4.11 && <5
     , bytestring
     , containers
diff --git a/lib/Core/Encoding/Json.hs b/lib/Core/Encoding/Json.hs
--- a/lib/Core/Encoding/Json.hs
+++ b/lib/Core/Encoding/Json.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE InstanceSigs #-}
@@ -91,8 +92,13 @@
     breakPieces,
  )
 import qualified Data.Aeson as Aeson
+
+#if MIN_VERSION_aeson(2,0,1)
 import qualified Data.Aeson.Key as Aeson
 import qualified Data.Aeson.KeyMap as Aeson
+#else
+import qualified Data.HashMap.Strict as HashMap
+#endif
 import Data.Coerce
 import Data.Hashable (Hashable)
 import qualified Data.List as List
@@ -249,6 +255,7 @@
 
 fromAeson :: Aeson.Value -> JsonValue
 fromAeson value = case value of
+#if MIN_VERSION_aeson(2,0,1)
     Aeson.Object o ->
         let tvs = Aeson.toList o
             kvs =
@@ -260,10 +267,24 @@
                         )
                     )
                     tvs
-
             kvm :: Map JsonKey JsonValue
             kvm = intoMap kvs
          in JsonObject kvm
+#else
+    Aeson.Object o ->
+        let tvs = HashMap.toList o
+            kvs =
+                fmap ( \(k, v) ->
+                        ( JsonKey
+                            (intoRope k)
+                        , fromAeson v
+                        )
+                    )
+                    tvs
+            kvm :: Map JsonKey JsonValue
+            kvm = intoMap kvs
+         in JsonObject kvm
+#endif
     Aeson.Array v -> JsonArray (fmap fromAeson (V.toList v))
     Aeson.String t -> JsonString (intoRope t)
     Aeson.Number n -> JsonNumber n
