on master help sign in
Add some convenience values.
commit15bb576b032f45ea2318d2e0cbc247dc906bc209 authorBryan O'Sullivan <bos@serpentine.com> dateTue 1 Feb 2011, 15:32 (16 years ago) parent52e33b0
1 file changed+13
Data/Aeson/Types.hs+13
Data/Aeson/Types.hs+13
@@ -14,7 +14,9 @@ module Data.Aeson.Types
1414 -- * Core JSON types
1515 Value(..)
1616 , Array
17+ , emptyArray
1718 , Object
19+ , emptyObject
1820 -- * Type conversion
1921 , FromJSON(..)
2022 , ToJSON(..)
@@ -41,7 +43,10 @@ import System.Locale (defaultTimeLocale)
4143import qualified Data.Map as M
4244import qualified Data.Vector as V
4345
46+-- | A JSON \"object\" (key/value map).
4447type Object = Map Text Value
48+
49+-- | A JSON \"array\" (sequence).
4550type Array = Vector Value
4651
4752-- | A JSON value represented as a Haskell value.
@@ -61,6 +66,14 @@ instance NFData Value where
6166 rnf (Bool b) = rnf b
6267 rnf Null = ()
6368
69+-- | The empty array.
70+emptyArray :: Value
71+emptyArray = Array V.empty
72+
73+-- | The empty object.
74+emptyObject :: Value
75+emptyObject = Object M.empty
76+
6477-- | Construct an 'Object' from a key and a value.
6578(.=) :: ToJSON a => Text -> a -> Object
6679name .= value = M.singleton name (toJSON value)