Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
01-03-2021 11:49 AM
Hi Guys
I have a lithe problem when I try to import Json using APOC.
for example, with this Json
{"CODIGO":1, "NMPRODUTO":"SECADOR DE CABELO", "OBS": { "COR" : "PRETO", "VOLTAGEM" : "18V"}},
{"CODIGO":2, "NMPRODUTO":"CADERNO", "OBS": { "QTDPAGINAS" : 500, "MARCA" : "XYZ"}}
using this code for import
CALL apoc.load.json("file:///c:/TESTE.json")
YIELD value
create( n:PRODUTO { CODIGO:value.CODIGO,
NMPRODUTO:value.NMPRODUTO,
OBS.COR:value.OBS.COR,
OBS.VOLTAGEM:value.OBS.VOLTAGEM,
OBS.QTDPAGINAS:value.OBS.QTDPAGINAS,
OBS.MARCA:value.OBS.MARCA
})
I received this error:
Invalid input '.': expected an identifier character, whitespace or ':' (line 5, column 4 (offset: 125))
"OBS.COR:value.OBS.COR,"
Solved! Go to Solution.
01-03-2021 12:46 PM
First I added square brackets to the data like this.
[{"CODIGO":1, "NMPRODUTO":"SECADOR DE CABELO", "OBS": { "COR" : "PRETO", "VOLTAGEM" : "18V"}},
{"CODIGO":2, "NMPRODUTO":"CADERNO", "OBS": { "QTDPAGINAS" : 500, "MARCA" : "XYZ"}}]
And you can use backticks, too.
CALL apoc.load.json("file:///TESTE.json")
YIELD value
CREATE ( n:PRODUTO { CODIGO:value.CODIGO,
NMPRODUTO:value.NMPRODUTO,
`OBS.COR`:value.OBS.COR,
`OBS.VOLTAGEM`:value.OBS.VOLTAGEM,
`OBS.QTDPAGINAS`:value.OBS.QTDPAGINAS,
`OBS.MARCA`:value.OBS.MARCA
})
But I think it's better to remove the period (@ameyasoft ) or create those names with an underscore or something.
01-03-2021 12:22 PM
Remove the '.' in the property names:
OBSCOR:value.OBS.COR,
OBSVOLTAGEM:value.OBS.VOLTAGEM,
OBSQTDPAGINAS:value.OBS.QTDPAGINAS,
OBSMARCA:value.OBS.MARCA
01-03-2021 12:38 PM
I tried to do this too.
CALL apoc.load.json("file:///TESTE.json")
YIELD value
create( n:PRODUTO { CODIGO:value.CODIGO,
NMPRODUTO:value.NMPRODUTO,
OBSCOR:value.OBS.COR,
OBSVOLTAGEM:value.OBS.VOLTAGEM,
OBSQTDPAGINAS:value.OBS.QTDPAGINAS,
OBSMARCA:value.OBS.MARCA
})
but, I received this error
Failed to invoke procedure `apoc.load.json`: Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (',' (code 44)): expected a value
at [Source: (apoc.export.util.CountingInputStream); line: 1, column: 94]
01-03-2021 12:46 PM
First I added square brackets to the data like this.
[{"CODIGO":1, "NMPRODUTO":"SECADOR DE CABELO", "OBS": { "COR" : "PRETO", "VOLTAGEM" : "18V"}},
{"CODIGO":2, "NMPRODUTO":"CADERNO", "OBS": { "QTDPAGINAS" : 500, "MARCA" : "XYZ"}}]
And you can use backticks, too.
CALL apoc.load.json("file:///TESTE.json")
YIELD value
CREATE ( n:PRODUTO { CODIGO:value.CODIGO,
NMPRODUTO:value.NMPRODUTO,
`OBS.COR`:value.OBS.COR,
`OBS.VOLTAGEM`:value.OBS.VOLTAGEM,
`OBS.QTDPAGINAS`:value.OBS.QTDPAGINAS,
`OBS.MARCA`:value.OBS.MARCA
})
But I think it's better to remove the period (@ameyasoft ) or create those names with an underscore or something.
01-03-2021 03:26 PM
Hi Koji.
Thanks for your answerd, your solution worked very well
All the sessions of the conference are now available online