A sequence of key : value pairs, where key is a string and value is any type.
The sequence is comma separated and wrapped in curly brackets. The keys are case independent, and are used to find entries in the map, similar to how you use an index 1,2,3... to find entries in an array. (see Arrays tutorial). Since the value is any type, it can be another map, making any valid json ok as a map.
Example 1: if mymap has value {"key1":3mm, "anotherkey":"somevalue"} then mymap("anotherkey") is the string "somevalue".
Example 2: if mymap2 has value {"key":"val", "submap":{"key2":"val2"}} then mymap2("submap") is the map {"key2":"val2"}
A map can be specified using a valid json string like this: {"key":"val","submap":{"key2":"val2"}}
But it also accepts square brackets as long as they are matched: {"key":"val","submap":["key2":"val2"]}
But this is not: {"key":"val","submap":{"key2":"val2"]}