Как удалить специальные символы перед JSON.parse () при чтении файла

1

У меня есть 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

пожалуйста, помогите мне спасибо заранее!

  • 0
    Вы уверены, что строка JSON верна?
  • 0
    @ vibhor1997a, я на 100% уверен, что json действителен, я проверил в json lint , НО содержит некоторые специальные символы.
Показать ещё 9 комментариев
Теги:

1 ответ

0

это ваше решение

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"}
  • 0
    вот что я спросил здесь, как удалить их динамически, не попадая в ошибку выше
  • 0
    (/ [! @ # $ ^ &% * () + = []] / g, '') это специальные символы, их нужно жестко закодировать в своем коде. «удалить их динамически» означает что? .. Вы не можете контролировать этот JSON, вам нужно проанализировать, как упоминалось мной или Милад. Что вы ожидаете?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню