質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1670閲覧

jsonデータオブジェクトの保存ができないためご意見をいただきたいです。

kuma_kun

総合スコア1

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/09/26 18:57

前提・実現したいこと

大学の講義の一環で売上予測ソフトを作成しています。その中でfirebaseにcsvの売り上げでーたをインポートするためにcsvをjsonデータに変換してローカルに保存しようとしているのですが、うまく行きません。
djangoを使って作成していていろんなサイトを参考にしながらやっています。
現在csvをjsonデータのオブジェクトに変換したのですが、ダウンロードの処置がうまく行きませんでした。

発生している問題・エラーメッセージ

link.href = URL.createObjectURL(blob);
以上の部分でエラーが起きています。

エラーの内容
Uncaught TypeError: URL.createObjectURL is not a function

エラーメッセージ

該当のソースコード

html

1 <div id="head"> 2 <h3>CSVファイルを選択してください</h3> 3 <input type="file" id="fire_reader" name="fire_reader" accept=".csv"> 4 <button type="button" onClick="json_save()" >売り上げデータをアップロード</button> 5 </div> 6 7

javascript

1 2 3var items = []; 4var jsonArray = []; 5var count = 0; 6var j = 0; 7var rele = []; 8var len = 0; 9var title = ''; 10 11 12 13 14$(function(){ 15 $("#fire_reader").on("change", function(){ 16 17 $("#tbl").html(""); 18 19 for( i = 0; i < this.files.length; i++ ) { 20 var reader = new FileReader(); 21 var rows = ""; 22 var cols = ""; 23 var tr = null; 24 $(reader).on("load", function () { 25 var data = this.result.replace(/\r/g,""); 26 rows = this.result.split("\n"); 27 $.each( rows, function( idx, value ){ 28 if ( value == "" ) { 29 return; 30 } 31 32 cols = value.split(","); 33 tr = $("<tr></tr>").appendTo("#tbl"); 34 $.each( cols, function( idx, value ){ 35 if(count == 1000){ 36 //// 各データをループ処理する 37 38 if(j <= len){ 39 //a_line[items[j]] = value; 40 rele.push(cols[j]); 41 j++; 42 43 44 } 45 46 if(j == len){ 47 48 for (var i = 0; i < len; i++) { 49 var a_line = new Object(); 50 } 51 for (var q = 0; q < len; q++) { 52 // 要素名:items[j] 53 // データ:csvArrayD[j] 54 55 a_line[items[q]] = rele[q]; 56 57 } 58 j = 0; 59 rele = []; 60 jsonArray.push(a_line); 61 62 63 } 64 65 } 66 // 項目行の作成 67 if(count < 999 ){ 68 len++; 69 items.push(value); 70 if (value == "小計"){ 71 count = 1000; 72 } 73 } 74 75 76 //以下の処理でCSVを表示できるようにしている。 77 switch( idx ) { 78 case 7: 79 case 8: 80 // 数値項目はカンマ編集で右寄せ 81 $("<td></td>").appendTo(tr) 82 .text(value.number_format()) 83 .css({"text-align": "right" }); 84 break; 85 86 default: 87 $("<td></td>").appendTo(tr) 88 .text(value) 89 90 91 92 93 } 94 95 } ) 96 } ) 97 }); 98 if (this.files[i]) { 99 reader.readAsText(this.files[i],"UTF-8"); 100 } 101 console.log(jsonArray); 102 } 103 }); 104}); 105 106function getday(){ 107 var today = new Date(); 108 var year = today.getFullYear(); 109 var month = (today.getMonth()+1); 110 var day = today.getDate(); 111 var time = today.getHours(); 112 var mi = today.getMinutes(); 113 var se = today.getSeconds(); 114 title = (year +""+month+"" + day+ "_"+ time +":"+ mi+ ":"+ se); 115 console.log(title); 116} 117 118 119function json_save(){ 120 getday(); 121 console.log(jsonArray); 122 let hugastring = JSON.stringify(jsonArray); 123 console.log(hugastring); 124 let blob = new Blob([hugastring],{type:"text/plan"}); 125 let link = document.createElement('a'); 126 link.href = URL.createObjectURL(blob); 127 link.download = title; 128 link.click(); 129} 130

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/09/27 23:23

質問者さん、無言ですが、回答したのでそれに対するフィードバックを書きましょう。役に立った/立たなかったぐらいはすぐ返せるはず。役に立たなかったなら、どこがダメだったかを書くと、より質問者さんが期待する答えに近いものが出てくるかも。とにかく無言で放置は NG です。
退会済みユーザー

退会済みユーザー

2021/09/29 02:14 編集

スレッドをオープンしたまま放置しないでクローズするようお願いします。 私の回答で紹介した記事に書いてある IE11 の場合 msSaveBlob メソッドを使うことで解決できたら回答欄のコメントにその旨書いて私の回答にベストアンサーを付けてクローズしてください。 下の回答のコメントにあなたが書いた「別の方法を考えてみます」で解決できたのなら自分で回答欄を作ってそれに書いて解決マークを付けてクローズしてください。 有効な手段が見つからずギブアップしたなら、やはりその旨書いてクローズしてください。表題にクローズしましたと書いていただけると閲覧者に一目でわかって良いと思います。
guest

回答1

0

ベストアンサー

ダウンロードの処置がうまく行きませんでした。

以下の記事が参考になりませんか?

Ajax でファイルダウンロード
http://surferonwww.info/BlogEngine/post/2019/02/05/file-download-by-using-ajax.aspx

ブラウザに何を使っているか不明ですが、IE11 は window.URL をサポートしてないということがありました。

投稿2021/09/26 22:19

編集2021/09/26 22:29
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuma_kun

2021/09/28 08:02

ありがとうございます!!!。 サポート自体していなかったですね、そしたら別の方法を考えてみます。
退会済みユーザー

退会済みユーザー

2021/09/28 09:06

紹介した記事は読みましたか? IE11 の場合は別の方法があることが書いてあるでしょ。それで目的は果たせなかったのですか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問