apoc.load.jsonArray

Procedure APOC Core

apoc.load.jsonArray('url') YIELD value - load array from JSON URL (e.g. web-api) to import JSON as stream of values

Signature

apoc.load.jsonArray(url :: STRING?, path =  :: STRING?, config = {} :: MAP?) :: (value :: ANY?)

Input parameters

Name Type Default

url

STRING?

null

path

STRING?

config

MAP?

{}

Output parameters

Name Type

value

ANY?

Usage Examples

map.json contains a JSON document representing a person and their children.

map.json
{
  "foo":[1,2,3]
}

We’ll place this file into the import directory of our Neo4j instance. Let’s now write a query using the apoc.load.jsonArray procedure to explore this file.

The following query processes map.json and returns the content as Cypher data structures

CALL apoc.load.jsonArray("file:///map.json", "$.foo");
Table 1. Results
value

[1, 2, 3]

Moreover, we can customize the Json path options, adding the config {pathOptions: 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 with the following json:

{ "columns": {
      "col2": {
        "_id": "772col2"
      }
    }
}

we can execute (with default pathOptions):

CALL apoc.load.jsonArray($url, '$..columns');
Table 2. Results
value

[ {"col2": { "_id": "772col2" }}, null, null ]

or, with custom path options:

CALL apoc.load.jsonArray($url, '$..columns', ['ALWAYS_RETURN_LIST']);
Table 3. Results
value

[ {"col2": { "_id": "772col2" }} ]