Retrieve a part of the graph from the specified JSON object.

For the expected format, see JsonGraphStore.

Property definitions

neo4j :: json_graph_store $ NeoGraph :: load_json_object
	# Retrieve a part of the graph from the specified JSON object.
	#
	# For the expected format, see `JsonGraphStore`.
	fun load_json_object(o: JsonObject) do
		var json_nodes = o["nodes"].as(JsonArray)
		var nodes = self.nodes
		nodes.enlarge(nodes.length)
		for json_node in json_nodes do
			assert json_node isa JsonObject
			var node = new NeoNode.from_json_object(json_node)
			nodes.add node
		end

		var json_edges = o["edges"].as(JsonArray)
		var edges = self.edges
		if edges isa AbstractArray[NeoEdge] then edges.enlarge(edges.length)
		for json_edge in json_edges do
			assert json_edge isa JsonObject
			var from = nodes[nodes.id_from_jsonable(json_edge["from"])]
			var to = nodes[nodes.id_from_jsonable(json_edge["to"])]
			var rel_type = json_edge["type"].as(String)
			var json_properties = json_edge["properties"].as(JsonObject)
			var edge = new NeoEdge(from, rel_type, to)
			edge.properties.add_all(json_properties)
			edges.add edge
		end
	end
lib/neo4j/graph/json_graph_store.nit:166,2--192,4