log4hs-0.0.1.0: src/Data/Aeson/Extra.hs
module Data.Aeson.Extra
( lookupObject
, lookupArray
, lookupString
, lookupBool
) where
import Data.Aeson
import qualified Data.HashMap.Strict as HM
import qualified Data.Text as T
lookupObject key kvs =
case (HM.lookup key kvs) of
Just (Object obj) ->
HM.fromList $ map (\(k, v) -> (T.unpack k, v)) $ HM.toList obj
_ -> HM.empty
lookupArray key kvs =
case (HM.lookup key kvs) of
Just (Array arr) -> foldr (:) [] arr
_ -> []
lookupString def key kvs =
case (HM.lookup key kvs) of
Just (String t) -> T.unpack t
_ -> def
lookupBool def key kvs =
case (HM.lookup key kvs) of
Just (Bool b) -> b
_ -> def