2012-06-21 18 views
5

Szukam przechowywać plik JSON lokalnie na IOS/Android w aplikacji Phonegap (Cordova).phonegap odczyt i zapis pliku json

Zasadniczo pobieram plik JSON z serwera ($ .GETJSON) i chcę najpierw zapisać plik JSON, a następnie pobrać i zmodyfikować go.

Sprawdziłem FileWriter, ale nie widzę typu MIME ... jedyny przykład daje pliki tekstowe.

Z góry dziękuję!

Nick

+1

dlaczego potrzebujesz typu MIME do przechowywania json? dane w tym przypadku będą przechowywane w zwykłym formacie tekstowym tylko – dhaval

Odpowiedz

13

Nick, wystarczy użyć FileWriter.write aby zapisać dane w formacie JSON na dysku. JSON jest plikiem tekstowym, więc nie ma potrzeby ustawiania typu MIME. Gdy będziesz gotowy do ponownego załadowania pliku, użyj FileReader.readAsText. W twojej procedurze "onloadend" FileReadera metoda zostanie wywołana ze zdarzeniem i event.target.result będzie twoimi danymi JSON. Następnie można wykonać przekształcenie tekstu w obiekt JSON, aby uzyskać znacznik JSON (012).

+0

z jakiegoś powodu event.target.result daje mi nie zwykły plik "json", ale z \ r \ nw każdej linii i JSON.parse nie powiedzie się na tym. Jak sobie z tym poradzić? – 31415926

+0

Podczas zapisywania użyj JSON.stringify (yourJsonData); –

2

(dla ustawień domyślnych szablonów lub) po prostu przechowywać je w osobnych plikach stałych, więc nie trzeba używać żadnych specjalnych dodatków użytkowych pliku lub polecenia, super proste:

(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": ''  
     } 
    ] 
} 
)})(); 

Następnie w aplikacji: (po wstrzyknięciu "settings_json")

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

To jest naprawdę bardzo dobry pomysł! – axtscz