2012-06-21 40 views
5

Estoy buscando almacenar un archivo JSON localmente en IOS/Android en una aplicación Phonegap (Cordova).phonegap leer y escribir el archivo json

Básicamente, recupero un archivo JSON del servidor ($ .GETJSON) y quiero primero almacenar el archivo JSON y luego recuperarlo y modificarlo.

He examinado FileWriter pero no veo un tipo mimet ... el único ejemplo da archivos de texto.

¡Gracias de antemano!

Nick

+1

¿Por qué necesita el tipo de mime para almacenar json? los datos en este caso se almacenarán en un formato de texto sin formato solo – dhaval

Respuesta

13

Nick, sólo tiene que utilizar FileWriter.write para guardar los datos JSON en el disco. JSON es un archivo de texto de todos modos, por lo que no es necesario establecer el tipo de mimo. Cuando esté listo para cargar el archivo nuevamente, use FileReader.readAsText. En su controlador "onloadend" del FileReader, se llamará al método con un evento y event.target.result serán sus datos JSON. A continuación, realizará un

var myJson = JSON.parse(event.target.result); 

para convertir el texto en un objeto JSON.

+0

por algún motivo event.target.result me ​​da un archivo no 'simple' pero con \ r \ n en cada línea y JSON.parse falla en eso. ¿Cómo lidiar con eso? – 31415926

+0

Al guardar, use JSON.stringify (yourJsonData); –

2

(para configuración de la plantilla o por defecto) que acabo de almacenarlos en archivos separados constantes, así que no tengo que usar de complementos especiales de utilidad de archivos o comandos, súper fáciles:

(function(){ 
angular.module('app').constant('settings_json', 
{ 
    "name":"settings", 
    "data":[ 
     { 
      "set":"globals", 
      "share_diagnostics":true, 
      "user_prefs_save_cloud": true   
     }, 
     { 
      "set":"user", 
      "fname":'', 
      "lname": '', 
      "telephone": '', 
      "email": ''  
     } 
    ] 
} 
)})(); 

Luego, en su aplicación: (después de inyectar 'settings_json')

var settings = angular.fromJson(settings_json); 
+0

¡Esta es una muy buena idea! – axtscz

Cuestiones relacionadas