Я пытаюсь разобрать такую строку
var temp = JSON.parse('{"FHPosition":"consultant","FDesc":"apr4","FHId":"i:0#.w|spdev\gkr"}'.replace("\\","\\\\"))
console.info(temp.FHId)
//expected output: i:0#.w|spdev\gkr
//actual output: i:0#.w|spdevgkr
Но когда я пытаюсь заменить обратную косую черту или выполнить какие-либо действия со строкой, обратная косая черта исчезает из строки. Есть ли способ заменить обратную косую черту, чтобы она не исчезла?
Как показано в этот ответ, если символ после обратной косой черты не является допустимой escape-последовательностью (можно найти список здесь), он полностью удалит обратную косую черту из строки. Я считаю, что вам нужно сначала использовать регулярное выражение в .replace (), а во-вторых, вы должны структурировать данные внутри оператора синтаксического анализа, прежде чем заменять его. Попробуйте использовать этот код:
var temp = JSON.parse(JSON.stringify('{"FHPosition":"consultant","FDesc":"apr4","FHId":"i:0#.w|spdev\gkr"}').replace("\\","\\\\"))
console.info(temp.FHId);
Надеюсь, это поможет!
Тот факт, что ваша строка буквальный имеет обратную косую черту, не означает, что ваша фактическая строка имеет. Попробуй его распечатать. В нем нет обратной косой черты.