我有一堆 JSON 对象存储在 JQuery 的一个数组中。有没有一种简单的方法可以将它们重写为我本地机器的 JSON 文本文件?
谢谢!
您可以使用数据 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/
console.log(JSON.stringify([1,2,3,4,5]));
打开 gedit 或其他文本编辑器。从控制台复制。粘贴到文件中。另存为 array.json。
编辑
Chrome 支持copy
,因此您可以这样做copy("foobar")
,并且“foobar”将出现在您的剪贴板上。
有一个 jQuery 插件jQuery.twFile允许您读取和写入本地文件。