У меня есть json
в папке, которая поступает от третьей стороны, у меня нет контроля над данными json
просто мне нужно ее parse
и манипулировать.
некоторое время я получу эту ошибку:
Uncaught SyntaxError: Неожиданный конец ввода JSON на JSON.parse
json действителен json, но из-за некоторого специального символа я получаю выше ошибки:
R:\30-09-18\LTP\р
некоторое время я получу ошибку синтаксического анализа:
не в состоянии распознать.........
Вопрос: как я могу удалить все специальные символы, чтобы JSON.parse(data);
не будет делать никаких error
вот что я пытаюсь:
var fs = require('fs');
var path = require('path');
var fileLoc = path.join(__dirname,'file.json');
var content = fs.readFileSync(fileLoc,'utf8');
content = JSON.parse(filecontent); // error occurs here
пожалуйста, помогите мне спасибо заранее!
это ваше решение
var fs = require('fs');
var path = require('path');
var fileLoc = path.join(__dirname,'file.json');
var content = fs.readFileSync(fileLoc,'utf8');
content = content.replace(/\\/g, '\\\\')
content = JSON.parse(filecontent);
Когда вы хотите разобрать строку, содержащую символ обратной косой черты, вы должны изменить каждую обратную косую черту двумя обратными слэшами. ниже приведен пример выполнения на вкладке консоли браузера Chrome
content = '{"path":"R:\\30-09-18\\LTP\\p"}'
JSON.parse(content)
VM835:1 Uncaught SyntaxError: Unexpected number in JSON at position 12
at JSON.parse (<anonymous>)
at <anonymous>:1:6
(anonymous) @ VM834:1
content = content.replace(/\\/g, '\\\\')
"{"path":"R:\\30-09-18\\LTP\\p"}"
JSON.parse(content)
//result is {path: "R:\30-09-18\LTP\p"}
JSON
верна?json lint
, НО содержит некоторые специальные символы.