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);
  };
 }


この記事が気に入ったらサポートをしてみませんか?