Reputation: 7377
I have a bunch of JSON objects stored in an array in JQuery. Is there an easy way to rewrite them to a JSON text file to my local machine?
Thanks!
Upvotes: 2
Views: 17007
Reputation: 11425
console.log(JSON.stringify([1,2,3,4,5]));
Open gedit or other text editor. Copy from console. Paste in file. Save as array.json.
EDIT
Chrome supports copy
so you could do copy("foobar")
and "foobar" will be on your clipboard.
Upvotes: 4
Reputation: 26690
You can use a Data URI Scheme to convert the JSON to an "URL" which can be then downloaded, i.e.
/* 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/
Upvotes: 5
Reputation: 25555
There's a jQuery plugin jQuery.twFile that allows you to read and write to a local file.
Upvotes: 1