2

JQueryの配列に多数のJSONオブジェクトが格納されています。それらをローカルマシンのJSONテキストファイルに書き換える簡単な方法はありますか?

ありがとう!

4

3 に答える 3

5

データURIスキームを使用して、JSONを「URL」に変換し、ダウンロードすることができます。

/* Firstly you'll need a javascript library which can encode data to base 64
 * http://archive.plugins.jquery.com/project/base64  - jQuery Plugin
 * http://www.webtoolkit.info/javascript-base64.html - Collection of functions
 * http://stackoverflow.com/a/6740027/451672         -     ''     ''     "
 */

/* Now we must convert the JSON to text, which can be done with the 
   JSON.stringify() method
 * http://msdn.microsoft.com/en-us/library/cc836459(v=vs.85).aspx
 */

var data = JSON.stringify(myObject);

/* Now we convert the data to a Data URI Scheme, which must be Base64 encoded
   make sure you use the appropriate method to Base64 encode your data depending
   on the library you chose to use.
 * application/octet-stream simply tells your browser to treat the URL as 
   arbitrary binary data, and won't try to display it in the browser window when 
   opened.
 */
var url = "data:application/octet-stream;base64," + Base64.encode(data);

/* To force the browser to download a file we need to use a custom method which
   creates a hidden iframe, which allows browsers to download any given file 
 * http://stackoverflow.com/a/3749395/451672
 */
var downloadURL = function(url)
{
    var iframe;
    iframe = document.getElementById("hiddenDownloader");
    if (iframe === null)
    {
        iframe = document.createElement('iframe');  
        iframe.id = "hiddenDownloader";
        iframe.style.display = "none";
        document.body.appendChild(iframe);
    }
    iframe.src = url;   
}

/* Now downloading is simple as executing the following code, make sure that
   the DOM is not modified until after the page has finished loading!
 */
window.onload = function()
{
    var link = document.getElementById("downloadJSON");
    link.onclick = function()
    {
        downloadURL(url);
    }
}

jsFiddle: http: //jsfiddle.net/cQV7X/

于 2012-04-14T05:16:55.360 に答える
4
console.log(JSON.stringify([1,2,3,4,5]));

geditまたはその他のテキストエディタを開きます。コンソールからコピーします。ファイルに貼り付けます。array.jsonとして保存します。

Chrome がサポートしているcopyのでcopy("foobar")、「foobar」がクリップボードに表示されます。

于 2012-04-14T03:56:15.383 に答える
1

ローカルファイルの読み取りと書き込みを可能にするjQueryプラグインjQuery.twFileがあります。

于 2012-04-14T03:56:42.563 に答える