JavaScriptでBlobの中身をJSONに変換したいことがあったため、方法のメモです。
以下のようなヘルパー関数を作ります。
/utils/fileReader.js
/**
* 非同期にBlobをテキストとして読み込みます。
*/
export default blob => {
const fileReader = new FileReader();
return new Promise((resolve, reject) => {
fileReader.onerror = () => {
fileReader.abort();
reject();
};
fileReader.onload = () => {
resolve(fileReader.result);
};
fileReader.readAsText(blob);
});
};
##使用例
import fileReader from "/utils/fileReader";
const blobToJson = async blob => {
const blobText = await fileReader(blob);
return JSON.parse(blobText);
};