【发布时间】:2019-07-04 04:43:32
【问题描述】:
我正在尝试读取用户上传的 JSON 文件,并尝试将其复制到数组中。但是,使用 .readAsText(),我得到的返回具有字符串的格式(显然),例如包括 \" 和 \n 以及其他类似字符串的属性。
有没有一种方法可以使用 FileReader(或任何其他形式的不涉及服务器的读取文件)来读取 JSON 文件并让它只返回纯 JSON?
例如,让它返回
[
{"hello": "world"}
]
或
[{"hello": "world"}]
而不是
"[\n{\"hello\": \"world\"}\n]"
?
编辑:我现在知道 JSON.parse(text) 方法,但是在解析 FileReader 对象时出现错误
let fileUploaded = new FileReader();
fileUploaded.readAsText(MY_JSON_FILE);
console.log(JSON.parse(fileUploaded));
它返回错误error TS2345: Argument of type 'FileReader' is not assignable to parameter of type 'string'
我可以将我使用 FileReader 读取的内容获取到另一个字符串 var,然后解析该新 var 吗?
【问题讨论】:
-
你的意思是让 JSON 字符串自动解码成 JavaScript 对象吗?
-
根据我上面评论中的链接,您希望
JSON.parse(text);将其变成一个对象。 -
@Archer 我不知道 JSON.parse,它似乎确实接近解决方案,但我得到了我无法解析 FileReader obj 的错误......无论如何我可以将信息传递给另一个obj来保存字符串,然后解析那个obj?
-
JSON是字符串格式。 “解析 FileReader obj” 是什么意思?您能否在问题中包含使用FileReader的 HTML 和 JavaScript 代码?见stackoverflow.com/help/mcve
标签: javascript typescript filereader