Javascript 在Vue.js中处理JSON文件后,JSON字符无效
我正在构建一个web应用程序,在这里我可以上传一个JSON文件,更新它,然后下载它。输出JSON无效,因为某些字符在该过程中发生了更改。我不知道我错在哪里,因为即使我只上传=>下载而不更新,JSON仍然无效 以下是我如何阅读上传的JSON:Javascript 在Vue.js中处理JSON文件后,JSON字符无效,javascript,vue.js,encoding,vuejs2,filereader,Javascript,Vue.js,Encoding,Vuejs2,Filereader,我正在构建一个web应用程序,在这里我可以上传一个JSON文件,更新它,然后下载它。输出JSON无效,因为某些字符在该过程中发生了更改。我不知道我错在哪里,因为即使我只上传=>下载而不更新,JSON仍然无效 以下是我如何阅读上传的JSON: readFile: function () { var reader = new FileReader(); reader.onload = function(event) { this.json = JSON.parse(event.tar
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时,会收到错误信号,指示无效字符,例如:
字符串中的无效字符。对于“我的编辑器”中的某些行,必须对控制字符进行转义
,当我尝试在pythonUnicodeDecodeError:“utf-8”编解码器无法解码X位置的字节0xac:无效的起始字节
中以json\u文件的形式打开('output.json')加载它时。
JSON.parse
然后JSON.stringify
是否会修改JSON的编码或结构?如何避免这种影响
更新:
原始文件可以有一些字符,如
\u2013
,\u2014
,\u201d
,\u00e7
,但这些字符会被转换成如下内容� 或者输出JSON中的不可见字符,我想这会使其无效。尝试将'UTF-8'
作为第二个参数添加到readAsText
函数中,如下所示:
reader.readAsText(this.file,'UTF-8');
这可能会有所帮助-不幸的是,我想这不起作用,因为utf-8已经是
readAsText()的默认编码值了。