3

私は現時点でGoogle Chrome拡張機能を作成していますが、ダウンロードするJSONファイル(エクスポート)を作成し、ユーザーが拡張機能を開いてJSONファイルを解析できるボタンを作成することができるかどうかは疑問でした。ローカルファイルシステムまたはUSBスティックに保存されています(import)。Google Chrome拡張機能を使用してJSONファイルをインポート/エクスポートしますか?

ローカルファイルシステムから各JSONを解析するには、単純に各キーと値のペアを読み取り、そのデータで何かを行う必要があります。それは文字列を扱うだけでよいので、何も複雑ではありません。

**私の質問は、ユーザーのダウンロードパスを変更することに興味がないので、this oneの複製ではありません。私が望むのは、同意を得て、通常のダウンロードディレクトリ(Filesaver.jsで実行できる)にファイルをダウンロードできるようにすることだけです。さらに、その投稿はインポートについて何も言わない。

+1

がfilesaver.jsと簡単です

fakeImp.onclick = function() {importOrig.click()} 

イベントをインポートするためのトリガーとして使用されますjson –

+0

@Daniel_Lチップのおかげで。 Filesaver.jsはJSONファイルの保存には最適ですが、ユーザーが作成したファイルを開くのはどうですか? – user5508297

+0

質問を編集して、アップロードしたjsonファイルで何をしたいのかを正確に示すことができます –

答えて

8

あなたが偽のリンク架空の配列MyDataまたは何これはエクスポートします,:

var MyArray = [elem1, elem2, ....]; 
var _myArray = JSON.stringify(MyArray , null, 4); //indentation in json format, human readable 

var vLink = document.createElement('a'), 
vBlob = new Blob([_myArray], {type: "octet/stream"}), 
vName = 'watever_you_like_to_call_it.json', 
vUrl = window.URL.createObjectURL(vBlob); 
vLink.setAttribute('href', vUrl); 
vLink.setAttribute('download', vName); 
vLink.click(); 

を「ダウンロード」することができます/ vName変数として名前のJSONファイルにあなたの配列をダウンロードしてください。


あなたは読み取り/ファイルをインポートする場合:
入力要素(タイプ=ファイル)を作成し、(ここで私はhtml要素を抱えていると、スクリプト内のjsリスナーの追加)

<input type="file" id="importOrig" accept=".json" style="display:none"/> 
を、それを不可視に

スクリプト

importOrig.addEventListener("change", importFun, false); 

は、あなたが望むようにあなたのスタイルができ、ボタンfakeImp(または任意の要素)を作りますそれはあなたが解析されて何をしたいかに依存して、JSONファイルを保存する(リスナーから)インポート機能

function importFun(e) { 
    var files = e.target.files, reader = new FileReader(); 
    reader.onload = _imp; 
    reader.readAsText(files[0]); 
} 

function _imp() { 
    var _myImportedData = JSON.parse(this.result); 
    //here is your imported data, and from here you should know what to do with it (save it to some storage, etc.) 

    ...... 
    importOrig.value = ''; //make sure to clear input value after every import 
} 
+1

これはこれまでのところ、この問題に対する最良の答えです。 – Whitecat

関連する問題