JavaScriptで.jsonファイルを読み込んだ
●やりたいこと
スプレッドシートで作ったデータを.csv化
→.csvファイルを.jsonファイルに変換
→.jsonを読み込んで中身をサーバーから取得する
●使ったコンテンツ
・.csvファイルを.jsonファイルに変換する
・さまざまなブログや記事を拝見いたしました。
ありがとうございました。
●基本構文
var xhr = new XMLHttpRequest();
xhr.open('メソッド', 'URL');
xhr.send();
xhr.onreadystatechange =
function(){
if(xhr.readyState ===4 && xhr.status === 200){
// 処理
};
}
これをクラス関数のコンストラクタに記入
●できなかったこと
⑴CORSエラーがわからなかった
⑵JSON.parse()メソッドによるSyntaxError出まくり
●やったこと
・とりあえず書いたり書かなかったり繰り返し笑
●わかったこと
・open()メソッド:新しく作成したリクエストを初期化
→メソッド:'GET'→データを取得する
→URL:.jsonファイルがブラウザに表示できないと読み込めなかった!
ブラウザに表示できるのは
「public」ディレクトリにあるファイルのみ
srcディレクトリに置いていたのでブラウザに表示できる状態
でもなく、JSON .parse()でも読み込めなかったと思われる。
→第3引数【async】:"(省略)" or "true" →非同期、"false" →同期
・JSON.parse()メソッド
→JSONの文字列をJavaScriptのオブジェクトとして構築する。
オブジェクトの配列になっているので
.csvファイルを配列化するようにfor文は使わなくて良い。
・xhr.responseType=' ';
→'text' or 省略:テキスト
→この時、【JSON.parse(xhr.responseText)】にする
→'json':.jsonファイル読み込み(今回は使わなかった)
→この時、【JSON.parse(xhr.response)】にする
●最終コード
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost:3000/xxx.json');
xhr.send();
xhr.onreadystatechange =
function () {
if (xhr.readyState === 4 && xhr.status === 200) {
let json_data = JSON.parse(xhr.response);
return console.log(json_data);
};
}
この記事が気に入ったらサポートをしてみませんか?