diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,3 @@
+# 0.1.1
+
+- Support `aeson-2.0.0.0`
diff --git a/src/Data/Structured/Internal.hs b/src/Data/Structured/Internal.hs
--- a/src/Data/Structured/Internal.hs
+++ b/src/Data/Structured/Internal.hs
@@ -58,6 +58,11 @@
 import qualified Data.Vector.Unboxed     as UV
 import qualified Data.Version            as Version
 
+#if MIN_VERSION_aeson(2,0,0)
+import qualified Data.Aeson.Key as Key
+import qualified Data.Aeson.KeyMap as KM
+#endif
+
 #if __GLASGOW_HASKELL__ >= 800
 import Data.Kind (Type)
 #else
@@ -433,6 +438,11 @@
 -------------------------------------------------------------------------------
 
 instance Structured Aeson.Value
+
+#if MIN_VERSION_aeson(2,0,0)
+instance Structured Key.Key where structure = nominalStructure
+instance Structured v => Structured (KM.KeyMap v) where structure = containerStructure
+#endif
 
 -------------------------------------------------------------------------------
 -- unordered-containers
diff --git a/structured.cabal b/structured.cabal
--- a/structured.cabal
+++ b/structured.cabal
@@ -1,20 +1,21 @@
-cabal-version: 2.2
-name:          structured
-version:       0.1.0.1
-synopsis:      Structure (hash) of your data types
-category:      Data
+cabal-version:      2.2
+name:               structured
+version:            0.1.1
+synopsis:           Structure (hash) of your data types
+category:           Data
 description:
   Calculate the hash of a data structure.
   It can be used as a magic number for the serialization formats.
   See <https://hackage.haskell.org/package/binary-tagged binary-tagged>
   for a @binary@ bindings.
 
-bug-reports:   https://github.com/phadej/binary-tagged/issues
-author:        Oleg Grenrus <oleg.grenrus@iki.fi>
-maintainer:    Oleg Grenrus <oleg.grenrus@iki.fi>
-license:       BSD-3-Clause
-license-file:  LICENSE
-build-type:    Simple
+bug-reports:        https://github.com/phadej/binary-tagged/issues
+author:             Oleg Grenrus <oleg.grenrus@iki.fi>
+maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
+license:            BSD-3-Clause
+license-file:       LICENSE
+build-type:         Simple
+extra-source-files: CHANGELOG.md
 tested-with:
   GHC ==7.8.4
    || ==7.10.3
@@ -41,28 +42,28 @@
 
   -- Libraries bundled with GHC
   build-depends:
-      array         >=0.5.0.0  && <0.6
+    , array         ^>=0.5.0.0
     , base          >=4.7.0.2  && <4.16
     , binary        >=0.7.1.0  && <0.10
     , bytestring    >=0.10.4.0 && <0.12
     , containers    >=0.5.5.1  && <0.7
-    , text          >=1.2.3.0  && <1.3
+    , text          ^>=1.2.3.0
     , transformers  >=0.3.0.0  && <0.6
 
   -- other dependencies
   build-depends:
-      aeson                 >=1.2.1.0 && <1.6
+    , aeson                 >=1.2.1.0 && <1.6 || >=2.0.0.0 && <2.1
     , base16-bytestring     >=0.1.1.6 && <1.1
     , hashable              >=1.2     && <1.4
-    , scientific            >=0.3     && <0.4
+    , scientific            ^>=0.3
     , tagged                >=0.7     && <0.9
-    , time-compat           >=1.9.2.2 && <1.10
-    , unordered-containers  >=0.2     && <0.3
-    , uuid-types            >=1.0.3   && <1.1
+    , time-compat           ^>=1.9.2.2
+    , unordered-containers  ^>=0.2
+    , uuid-types            ^>=1.0.3
     , vector                >=0.10    && <0.13
 
   if !impl(ghc >=8.0)
     build-depends: semigroups >=0.18.5 && <0.20
 
   if !impl(ghc >=7.10)
-    build-depends: nats >=1.1.2 && <1.2
+    build-depends: nats ^>=1.1.2
