首页 > 解决方案 > 在 Vue.js 中处理 JSON 文件后 JSON 字符无效

问题描述

我正在构建一个网络应用程序,我可以在其中上传 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 时,我收到指示无效字符的错误,例如:

使用JSON.parsethen是否会JSON.stringify修改 JSON 的编码或结构?我怎样才能避免这种影响?

更新:

原始文件可以有一些字符,如\u2013, \u2014, \u201d\u00e7但这些字符会被转换成这样的东西 - 或输出 JSON 中的不可见字符,我猜这使它无效。

标签: javascriptvue.jsencodingvuejs2filereader

解决方案


尝试将'UTF-8'作为第二个参数添加到readAsText函数中,如下所示:

   reader.readAsText(this.file,'UTF-8');

推荐阅读