on master help sign in
Merge pull request #153 from danidiaz/master

Added FromJSON and ToJSON instances for Data.Tree.

commite193cb94858a26492f43c131a1bd495c62f594de authorBryan O'Sullivan <bos@serpentine.com> dateSun 13 Oct 2013, 21:36 (13 years ago) parent94b2e3f6c6ccc3
1 file changed+7
Data/Aeson/Types/Class.hs+7
Data/Aeson/Types/Class.hs+7
@@ -75,6 +75,7 @@ import qualified Data.IntMap as IntMap
7575import qualified Data.IntSet as IntSet
7676import qualified Data.Map as M
7777import qualified Data.Set as Set
78+import qualified Data.Tree as Tree
7879import qualified Data.Text as T
7980import qualified Data.Text.Lazy as LT
8081import qualified Data.Vector as V
@@ -584,6 +585,12 @@ instance (ToJSON v) => ToJSON (H.HashMap String v) where
584585instance (FromJSON v) => FromJSON (H.HashMap String v) where
585586 parseJSON = fmap (mapKey unpack) . parseJSON
586587
588+instance (ToJSON v) => ToJSON (Tree.Tree v) where
589+ toJSON (Tree.Node root branches) = toJSON (root,branches)
590+
591+instance (FromJSON v) => FromJSON (Tree.Tree v) where
592+ parseJSON j = uncurry Tree.Node <$> parseJSON j
593+
587594instance ToJSON Value where
588595 toJSON a = a
589596 {-# INLINE toJSON #-}