diff --git a/jsonifier.cabal b/jsonifier.cabal
--- a/jsonifier.cabal
+++ b/jsonifier.cabal
@@ -1,5 +1,5 @@
 name: jsonifier
-version: 0.1.1
+version: 0.1.2
 synopsis: Fast and simple JSON encoding toolkit
 description:
   Minimalistic library for encoding JSON directly to strict bytestring,
@@ -64,7 +64,7 @@
   other-modules:
     Main.Util.HedgehogGens
   build-depends:
-    aeson >=1.4.7.1 && <2,
+    aeson >=2 && <3,
     hedgehog >=1.0.3 && <2,
     jsonifier,
     numeric-limits >=0.1 && <0.2,
@@ -83,7 +83,7 @@
   default-extensions: BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, InstanceSigs, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, StrictData, TemplateHaskell, TupleSections, TypeApplications, TypeFamilies, TypeOperators, UnboxedTuples, ViewPatterns
   default-language: Haskell2010
   build-depends:
-    aeson >=1.5.4.1 && <1.6,
+    aeson >=2 && <3,
     buffer-builder >=0.2.4.7 && <0.3,
     gauge >=0.2.5 && <0.3,
     jsonifier,
diff --git a/library/Jsonifier.hs b/library/Jsonifier.hs
--- a/library/Jsonifier.hs
+++ b/library/Jsonifier.hs
@@ -6,6 +6,7 @@
 (
   -- * ByteString
   toByteString,
+  toWrite,
   -- * Json
   Json,
   -- ** Primitives
@@ -46,6 +47,14 @@
 toByteString :: Json -> ByteString
 toByteString =
   Write.writeToByteString . coerce
+
+{-|
+Render a JSON value into Write.
+-}
+{-# INLINE toWrite #-}
+toWrite :: Json -> Write
+toWrite =
+  coerce
 
 
 -- * Json
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -5,7 +5,8 @@
 import Hedgehog.Main
 import qualified Data.Aeson as A
 import qualified Jsonifier as J
-import qualified Data.HashMap.Strict as HashMap
+import qualified Data.Aeson.Key as AesonKey
+import qualified Data.Aeson.KeyMap as AesonKeyMap
 import qualified Hedgehog.Gen as Gen
 import qualified Hedgehog.Range as Range
 import qualified Data.ByteString.Char8 as Char8ByteString
@@ -40,7 +41,7 @@
         A.Array a ->
           J.array (fmap aesonJson a)
         A.Object a ->
-          J.object (HashMap.foldMapWithKey (\ k -> (: []) . (,) k . aesonJson) a)
+          J.object (AesonKeyMap.foldMapWithKey (\ k -> (: []) . (,) (AesonKey.toText k) . aesonJson) a)
 
 prop_aesonRoundtrip =
   withTests 9999 $
@@ -142,7 +143,7 @@
         ScientificStringSample a -> A.String (fromString (show a))
         TextStringSample a -> A.String a
         ArraySample a -> A.Array (fromList (fmap sample a))
-        ObjectSample a -> A.Object (fromList (fmap (fmap sample) a))
+        ObjectSample a -> A.Object (AesonKeyMap.fromList (fmap (bimap AesonKey.fromText sample) a))
       where
         realNumber a =
           A.Number $
@@ -204,7 +205,7 @@
       \ case
         A.Object b ->
           a & foldMap (\ (ak, av) ->
-                case HashMap.lookup ak b of
+                case AesonKeyMap.lookup (AesonKey.fromText ak) b of
                   Just bv -> fmap First (detectMismatchInSampleAndAeson av bv)
                   Nothing -> Just (First (ObjectSample a, A.Object b))
                 )
