apoc.convert.fromJsonMap
Function APOC Core
apoc.convert.fromJsonMap('{"a":42,"b":"foo","c":[1,2,3]}'[,'json-path', 'path-options'])
Signature
apoc.convert.fromJsonMap(map :: STRING?, path =  :: STRING?, pathOptions = null :: LIST? OF STRING?) :: (MAP?)Usage Examples
The following converts a JSON map into a Cypher map:
RETURN apoc.convert.fromJsonMap('{"name": "Graph Data Science Library"}') AS output;| Output | 
|---|
| {name: "Graph Data Science Library"} | 
We can also use JSON path expressions to extract part of a JSON map.
For example, the following extracts the product property from a JSON map and returns a map:
RETURN apoc.convert.fromJsonMap('{"product": {"name": "Bloom"}}', '$.product') AS output;| Output | 
|---|
| {name: "Bloom"} | 
If we try to convert a non-map structure, we’ll get an exception. For example:
RETURN apoc.convert.fromJsonMap('[{"name": "Neo4j"}]') AS output;| Failed to invoke function  | 
In this case we should instead use apoc.convert.fromJsonList.
Moreover, we can customize the Json path options, adding as third parameter (pathOptions) a list of strings,
where the strings are based on Enum<Option>.
The default value is ["SUPPRESS_EXCEPTIONS", "DEFAULT_PATH_LEAF_TO_NULL"]. Note that we can also insert [], that is "without options".
So we can execute (with default pathOptions):
RETURN apoc.convert.fromJsonMap('{ "columns": {
      "col2": {
        "_id": "772col2"
      }
    }
}', '$.columns.col2') AS output;| output | 
|---|
| { "_id": "772col2" } | 
or, with custom path options:
RETURN apoc.convert.fromJsonMap('{ "columns": {
      "col2": {
        "_id": "772col2"
      }
    }
}', '$.columns.col2', ['ALWAYS_RETURN_LIST']) AS output;| Failed to invoke function apoc.convert.getJsonPropertyMap: Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance ofjava.util.LinkedHashMap<java.lang.Object,java.lang.Object>out of START_ARRAY token at [Source: UNKNOWN; line: -1, column: -1] | 
|---|