APOC импорт / извлечение JSON из CURL - PullRequest
0 голосов
/ 26 февраля 2019

Описание проблемы: я хочу использовать apoc.load.json, но определенным образом, а именно вместо URL или пути к файлу использовать переменную в качестве аргумента.Причина в том, что я отправляю свой json как часть CURL, поэтому я могу перехватить его и сохранить в переменной, есть ли какое-то решение?Поскольку мне нужно что-то вроде этого (к сожалению, это не работает, так как требует некоторый путь, а не переменную):

var inputObject = req.body;
var jsonObject = JSON.stringify(inputObject);

.run('WITH $inputParam AS url CALL apoc.load.json(url) ...', {inputParam: jsonObject})

, но не обязательно именно это, вероятно, есть какой-то другой способ получить jsonданные из curl.

Curl, если будет полезно:

curl -s -H "Content-Type: application/json" -X POST -d'{"origin":[{"label":"Alcohol drinks", "tag":[], "type":"string", "xpath":[]}, {"label":"Wine", "tag":["red","white"], "type":"string", "xpath":["Alcohol drinks"]}, {"label":"Port wine", "tag":["Portugal","sweet","strong"], "type":"string", "xpath":["Alcohol drinks","Wine"]}, {"label":"Sandeman Cask 33", "tag":["red","expensive"], "type":"string", "xpath":["Alcohol drinks","Wine","Port wine"]}], "target":[{"label":"Drinks", "tag":[], "type":"string", "xpath":[]}, {"label":"Tea", "tag":["black", "green"], "type":"string", "xpath":["Drinks"]}, {"label":"Carbonated water", "tag":[], "type":"string", "xpath":["Drinks","Tea"]}, {"label":"Pepsi", "tag":["sweet","cheap"], "type":"string", "xpath":["Drinks","Tea","Carbonated water"]}]}' http://localhost:3000/ontology

Буду признателен за любую помощь.Заранее спасибо.

1 Ответ

0 голосов
/ 01 марта 2019

Вам не нужна функция apoc.load.json.Используйте объект без преобразования stringify:

var inputObject = req.body;
session
  .run('UNWIND $inputParam.origin AS param MERGE(label:concept {name: param.label})', 
       {inputParam: inputObject});

Или передайте список в качестве параметра:

var inputObject = req.body;
session
  .run('UNWIND $inputParam AS param MERGE(label:concept {name: param.label})', 
       {inputParam: inputObject.origin});

PS Вам нужно лучше понять, что такое объекты в javascript.

...