aeson-2.0.1.0: Fast JSON parsing and encoding
Safe HaskellNone
LanguageHaskell2010

Data.Aeson.KeyMap

Description

An abstract interface for maps from JSON keys to values.

Synopsis

Map Type

data KeyMap v Source #

A map from JSON key type Key to v.

Instances

Instances details
Functor KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

fmap :: (a -> b) -> KeyMap a -> KeyMap b #

(<$) :: a -> KeyMap b -> KeyMap a #

Foldable KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

fold :: Monoid m => KeyMap m -> m #

foldMap :: Monoid m => (a -> m) -> KeyMap a -> m #

foldMap' :: Monoid m => (a -> m) -> KeyMap a -> m #

foldr :: (a -> b -> b) -> b -> KeyMap a -> b #

foldr' :: (a -> b -> b) -> b -> KeyMap a -> b #

foldl :: (b -> a -> b) -> b -> KeyMap a -> b #

foldl' :: (b -> a -> b) -> b -> KeyMap a -> b #

foldr1 :: (a -> a -> a) -> KeyMap a -> a #

foldl1 :: (a -> a -> a) -> KeyMap a -> a #

toList :: KeyMap a -> [a] #

null :: KeyMap a -> Bool #

length :: KeyMap a -> Int #

elem :: Eq a => a -> KeyMap a -> Bool #

maximum :: Ord a => KeyMap a -> a #

minimum :: Ord a => KeyMap a -> a #

sum :: Num a => KeyMap a -> a #

product :: Num a => KeyMap a -> a #

Traversable KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

traverse :: Applicative f => (a -> f b) -> KeyMap a -> f (KeyMap b) #

sequenceA :: Applicative f => KeyMap (f a) -> f (KeyMap a) #

mapM :: Monad m => (a -> m b) -> KeyMap a -> m (KeyMap b) #

sequence :: Monad m => KeyMap (m a) -> m (KeyMap a) #

Semialign KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

align :: KeyMap a -> KeyMap b -> KeyMap (These a b) #

alignWith :: (These a b -> c) -> KeyMap a -> KeyMap b -> KeyMap c #

Align KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

nil :: KeyMap a #

Zip KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

zip :: KeyMap a -> KeyMap b -> KeyMap (a, b) #

zipWith :: (a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c #

Filterable KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

mapMaybe :: (a -> Maybe b) -> KeyMap a -> KeyMap b #

catMaybes :: KeyMap (Maybe a) -> KeyMap a #

filter :: (a -> Bool) -> KeyMap a -> KeyMap a #

Witherable KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

wither :: Applicative f => (a -> f (Maybe b)) -> KeyMap a -> f (KeyMap b) #

witherM :: Monad m => (a -> m (Maybe b)) -> KeyMap a -> m (KeyMap b) #

filterA :: Applicative f => (a -> f Bool) -> KeyMap a -> f (KeyMap a) #

witherMap :: Applicative m => (KeyMap b -> r) -> (a -> m (Maybe b)) -> KeyMap a -> m r #

FromJSON1 KeyMap Source #

Since: 2.0.1.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

liftParseJSON :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (KeyMap a) Source #

liftParseJSONList :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser [KeyMap a] Source #

ToJSON1 KeyMap Source # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

liftToJSON :: (a -> Value) -> ([a] -> Value) -> KeyMap a -> Value Source #

liftToJSONList :: (a -> Value) -> ([a] -> Value) -> [KeyMap a] -> Value Source #

liftToEncoding :: (a -> Encoding) -> ([a] -> Encoding) -> KeyMap a -> Encoding Source #

liftToEncodingList :: (a -> Encoding) -> ([a] -> Encoding) -> [KeyMap a] -> Encoding Source #

KeyValue Object Source #

Constructs a singleton KeyMap. For calling functions that demand an Object for constructing objects. To be used in conjunction with mconcat. Prefer to use object where possible.

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.=) :: ToJSON v => Key -> v -> Object Source #

FunctorWithIndex Key KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

imap :: (Key -> a -> b) -> KeyMap a -> KeyMap b #

FoldableWithIndex Key KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

ifoldMap :: Monoid m => (Key -> a -> m) -> KeyMap a -> m #

ifoldMap' :: Monoid m => (Key -> a -> m) -> KeyMap a -> m #

ifoldr :: (Key -> a -> b -> b) -> b -> KeyMap a -> b #

ifoldl :: (Key -> b -> a -> b) -> b -> KeyMap a -> b #

ifoldr' :: (Key -> a -> b -> b) -> b -> KeyMap a -> b #

ifoldl' :: (Key -> b -> a -> b) -> b -> KeyMap a -> b #

TraversableWithIndex Key KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

itraverse :: Applicative f => (Key -> a -> f b) -> KeyMap a -> f (KeyMap b) #

SemialignWithIndex Key KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

ialignWith :: (Key -> These a b -> c) -> KeyMap a -> KeyMap b -> KeyMap c #

ZipWithIndex Key KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

izipWith :: (Key -> a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c #

FilterableWithIndex Key KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

imapMaybe :: (Key -> a -> Maybe b) -> KeyMap a -> KeyMap b #

ifilter :: (Key -> a -> Bool) -> KeyMap a -> KeyMap a #

WitherableWithIndex Key KeyMap Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

iwither :: Applicative f => (Key -> a -> f (Maybe b)) -> KeyMap a -> f (KeyMap b) #

iwitherM :: Monad m => (Key -> a -> m (Maybe b)) -> KeyMap a -> m (KeyMap b) #

ifilterA :: Applicative f => (Key -> a -> f Bool) -> KeyMap a -> f (KeyMap a) #

Lift v => Lift (KeyMap v :: Type) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

lift :: KeyMap v -> Q Exp #

liftTyped :: KeyMap v -> Q (TExp (KeyMap v)) #

Eq v => Eq (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

(==) :: KeyMap v -> KeyMap v -> Bool #

(/=) :: KeyMap v -> KeyMap v -> Bool #

Data v => Data (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> KeyMap v -> c (KeyMap v) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (KeyMap v) #

toConstr :: KeyMap v -> Constr #

dataTypeOf :: KeyMap v -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (KeyMap v)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (KeyMap v)) #

gmapT :: (forall b. Data b => b -> b) -> KeyMap v -> KeyMap v #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> KeyMap v -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> KeyMap v -> r #

gmapQ :: (forall d. Data d => d -> u) -> KeyMap v -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> KeyMap v -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> KeyMap v -> m (KeyMap v) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> KeyMap v -> m (KeyMap v) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> KeyMap v -> m (KeyMap v) #

Ord v => Ord (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

compare :: KeyMap v -> KeyMap v -> Ordering #

(<) :: KeyMap v -> KeyMap v -> Bool #

(<=) :: KeyMap v -> KeyMap v -> Bool #

(>) :: KeyMap v -> KeyMap v -> Bool #

(>=) :: KeyMap v -> KeyMap v -> Bool #

max :: KeyMap v -> KeyMap v -> KeyMap v #

min :: KeyMap v -> KeyMap v -> KeyMap v #

Read v => Read (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Show v => Show (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

showsPrec :: Int -> KeyMap v -> ShowS #

show :: KeyMap v -> String #

showList :: [KeyMap v] -> ShowS #

Semigroup (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

(<>) :: KeyMap v -> KeyMap v -> KeyMap v #

sconcat :: NonEmpty (KeyMap v) -> KeyMap v #

stimes :: Integral b => b -> KeyMap v -> KeyMap v #

Monoid (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

mempty :: KeyMap v #

mappend :: KeyMap v -> KeyMap v -> KeyMap v #

mconcat :: [KeyMap v] -> KeyMap v #

NFData v => NFData (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

rnf :: KeyMap v -> () #

Hashable v => Hashable (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

hashWithSalt :: Int -> KeyMap v -> Int #

hash :: KeyMap v -> Int #

FromJSON v => FromJSON (KeyMap v) Source #

Since: 2.0.1.0

Instance details

Defined in Data.Aeson.Types.FromJSON

ToJSON v => ToJSON (KeyMap v) Source # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Query

null :: KeyMap v -> Bool Source #

Is the map empty?

lookup :: Key -> KeyMap v -> Maybe v Source #

Return the value to which the specified key is mapped, or Nothing if this map contains no mapping for the key.

size :: KeyMap v -> Int Source #

Return the number of key-value mappings in this map.

member :: Key -> KeyMap a -> Bool Source #

Is the key a member of the map?

Construction

empty :: KeyMap v Source #

Construct an empty map.

singleton :: Key -> v -> KeyMap v Source #

Construct a map with a single element.

Insertion

insert :: Key -> v -> KeyMap v -> KeyMap v Source #

Associate the specified value with the specified key in this map. If this map previously contained a mapping for the key, the old value is replaced.

Deletion

delete :: Key -> KeyMap v -> KeyMap v Source #

Remove the mapping for the specified key from this map if present.

Update

alterF :: Functor f => (Maybe v -> f (Maybe v)) -> Key -> KeyMap v -> f (KeyMap v) Source #

alterF can be used to insert, delete, or update a value in a map.

Combine

difference :: KeyMap v -> KeyMap v' -> KeyMap v Source #

Difference of two maps. Return elements of the first map not existing in the second.

union :: KeyMap v -> KeyMap v -> KeyMap v Source #

unionWith :: (v -> v -> v) -> KeyMap v -> KeyMap v -> KeyMap v Source #

The union with a combining function.

unionWithKey :: (Key -> v -> v -> v) -> KeyMap v -> KeyMap v -> KeyMap v Source #

The union with a combining function.

intersection :: KeyMap a -> KeyMap b -> KeyMap a Source #

The (left-biased) intersection of two maps (based on keys).

intersectionWith :: (a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c Source #

The intersection with a combining function.

intersectionWithKey :: (Key -> a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c Source #

The intersection with a combining function.

alignWith :: (These a b -> c) -> KeyMap a -> KeyMap b -> KeyMap c Source #

Generalized union with combining function.

alignWithKey :: (Key -> These a b -> c) -> KeyMap a -> KeyMap b -> KeyMap c Source #

Generalized union with combining function.

Lists

fromList :: [(Key, v)] -> KeyMap v Source #

Construct a map with the supplied mappings. If the list contains duplicate mappings, the later mappings take precedence.

fromListWith :: (v -> v -> v) -> [(Key, v)] -> KeyMap v Source #

Construct a map from a list of elements. Uses the provided function, f, to merge duplicate entries with (f newVal oldVal).

toList :: KeyMap v -> [(Key, v)] Source #

Return a list of this map's elements.

The order is not stable. Use toAscList for stable ordering.

toAscList :: KeyMap v -> [(Key, v)] Source #

Return a list of this map's elements in ascending order based of the textual key.

Maps

fromHashMap :: HashMap Key v -> KeyMap v Source #

Convert a HashMap to a KeyMap.

toHashMap :: KeyMap v -> HashMap Key v Source #

Convert a KeyMap to a HashMap.

fromMap :: Map Key v -> KeyMap v Source #

Convert a HashMap to a Map.

toMap :: KeyMap v -> Map Key v Source #

Convert a KeyMap to a Map.

Traversal

Map

map :: (a -> b) -> KeyMap a -> KeyMap b Source #

Map a function over all values in the map.

mapKeyVal :: (Key -> Key) -> (v1 -> v2) -> KeyMap v1 -> KeyMap v2 Source #

Transform the keys and values of a KeyMap.

traverse :: Applicative f => (v1 -> f v2) -> KeyMap v1 -> f (KeyMap v2) Source #

Perform an Applicative action for each key-value pair in a KeyMap and produce a KeyMap of all the results.

traverseWithKey :: Applicative f => (Key -> v1 -> f v2) -> KeyMap v1 -> f (KeyMap v2) Source #

Perform an Applicative action for each key-value pair in a KeyMap and produce a KeyMap of all the results.

Folds

foldr :: (a -> b -> b) -> b -> KeyMap a -> b Source #

foldr' :: (a -> b -> b) -> b -> KeyMap a -> b Source #

foldl :: (b -> a -> b) -> b -> KeyMap a -> b Source #

foldl' :: (b -> a -> b) -> b -> KeyMap a -> b Source #

foldMapWithKey :: Monoid m => (Key -> a -> m) -> KeyMap a -> m Source #

foldrWithKey :: (Key -> v -> a -> a) -> a -> KeyMap v -> a Source #

Reduce this map by applying a binary operator to all elements, using the given starting value (typically the right-identity of the operator).

Conversions

keys :: KeyMap v -> [Key] Source #

Return a list of this map's keys.

Filter

filter :: (v -> Bool) -> KeyMap v -> KeyMap v Source #

Filter all keys/values that satisfy some predicate.

filterWithKey :: (Key -> v -> Bool) -> KeyMap v -> KeyMap v Source #

Filter all keys/values that satisfy some predicate.

mapMaybe :: (a -> Maybe b) -> KeyMap a -> KeyMap b Source #

Map values and collect the Just results.

mapMaybeWithKey :: (Key -> v -> Maybe u) -> KeyMap v -> KeyMap u Source #

Map values and collect the Just results.