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