Я создаю веб-приложение, в котором я могу загрузить файл JSON, обновить его и загрузить.Выходной JSON недопустим, потому что некоторые символы изменились в процессе.Я не знаю, где я не прав, потому что даже когда я только загружаю => загружать без обновлений, JSON по-прежнему недействителен ...
Вот как я читаю загруженный JSON:
readFile: function () {
var reader = new FileReader();
reader.onload = function(event) {
this.json = JSON.parse(event.target.result);
}.bind(this);
reader.readAsText(this.file);
}
Затем я могу редактировать (или нет) объект json
.Затем я могу загрузить его с помощью JSON.stringify(json)
.
Когда я пытаюсь прочитать или проверить выходной JSON, я получаю ошибки, сигнализирующие о недопустимых символах, например:
Invalid characters in string. Control characters must be escaped
для некоторыхстрок в моем редакторе. UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xac in position X: invalid start byte
когда я пытаюсь загрузить его в python with open('output.json') as json_file: data = json.load(json_file)
Использует ли JSON.parse
, тогда JSON.stringify
изменяет кодировку или структуруJSON?Как можно избежать этого эффекта?
ОБНОВЛЕНИЕ:
Исходный файл может содержать несколько символов, таких как \u2013
, \u2014
, \u201d
, \u00e7
, ноэти символы преобразуются в подобные вещи � или невидимые символы в выходном файле JSON, что, я думаю, делает его недействительным.