2015-12-08 50 views
17

dire che ho un oggetto JavaScript che assomiglia a questo:Come faccio a salvare JSON per file di testo locale

var data = { 
     name: "cliff", 
     age: "34", 
     name: "ted", 
     age: "42", 
     name: "bob", 
     age: "12" 
    } 

var jsonData = JSON.stringify(data); 

mi stringa i per convertire a JSON. Come posso salvare questo JSON in un file di testo locale in modo da poter aprire, ad esempio, nel Blocco note ecc

risposta

38

Node.js:

var fs = require('fs'); 
fs.writeFile("test.txt", jsonData, function(err) { 
    if(err) { 
     return console.log(err); 
    } 
}); 

browser (WebAPI):

function download(text, name, type) { 
    var a = document.createElement("a"); 
    var file = new Blob([text], {type: type}); 
    a.href = URL.createObjectURL(file); 
    a.download = name; 
    a.click(); 
} 
download(jsonData, 'test.txt', 'text/plain'); 
+0

Perfetto. Grazie. So che è una domanda completamente diversa, quanto è difficile ottenere Chrome per caricare JSON dal file locale? Leggi alcuni punti non è possibile a causa della sicurezza di Chrome ... – thatOneGuy

+2

è possibile, devi solo usare il tag di input con type = file, come presentato qui: http://stackoverflow.com/questions/13709482/how-to- read-text-file-in-javascript –

+0

mi hai appena salvato un sacco di tempo. Davvero apprezzato. Grazie :)) – thatOneGuy

2

Ecco una soluzione su js puro. Puoi farlo con html5 saveAs. Ad esempio questa lib potrebbe essere utile: https://github.com/eligrey/FileSaver.js
Guarda la demo: http://eligrey.com/demos/FileSaver.js/
P.S. Non ci sono informazioni su json save, ma puoi farlo cambiando tipo di file in "application/json" e formattarlo in .json

+0

"application/json" e .json funziona bene con il file system html. Anche usando questo per prevenire eventuali errori di analisi di json come "Token inaspettato? In JSON". Grazie. –

Problemi correlati