How to create nodes in nested array of JSON

I reproduced your error, Esai. geometryCoordinates is a nested list and we should unwind. 

Klaus code worked for me. I modified his code to match your code. Here is the code:

CALL apoc.load.json("esai1.json")
yield value as file
Unwind file.features as features
Unwind features.properties as properties
unwind properties.NAME as cityName
UNWIND features.geometry AS geometry
Unwind geometry.coordinates as geometryCoordinates
unwind properties.STATEFP as stateId
unwind properties.PLACEFP as placeId
UNWIND geometryCoordinates as geoCoord
with cityName, stateId, placeId, collect(point({
latitude: toFloat(geoCoord[0]),
longitude: toFloat(geoCoord[1])
})) as points

MERGE (ct:City{coordinates:points,stateId:stateId,place:placeId,cityName:cityName})
return ct.cityName, ct.stateId, ct.place, ct.coordinates

Result ( a sample):