2012-06-21 205 views
5

我正在尋找在iOS/Android上的Phonegap(Cordova)應用程序本地存儲JSON文件。phonegap讀取和寫入json文件

基本上,我從服務器($ .GETJSON)檢索一個JSON文件,我想先存儲JSON文件,然後檢索並修改它。

我看過FileWriter,但沒有看到mimetype ...唯一的例子給出了文本文件。

在此先感謝!

尼克

+1

爲什麼你需要mime類型來存儲json?在這種情況下,數據將被存儲在純文本合成文件中,由於某種原因,它僅存儲在 – dhaval

回答

13

尼克,只需使用FileWriter.write你的JSON數據保存到磁盤。無論如何,JSON是基於文本的文件,因此不需要設置MIME類型。當您準備好再次加載文件時,請使用FileReader.readAsText。在FileReader的「onloadend」處理程序中,該方法將被調用一個事件,event.target.result將是您的JSON數據。然後你會做一個

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

將文本轉換成JSON對象。

+0

中。event.target.result在每行中都給出了不是普通的'json'文件,而是\ r \ n,JSON.parse在該文件上失敗。如何處理? – 31415926

+0

保存時,使用JSON.stringify(yourJsonData); –

2

(模板或默認設置),我只是把它們存儲在單獨的文件不變,所以我沒有使用任何特殊的文件工具插件或命令,超級簡單:

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

然後在您的應用程序: (注入'settings_json'後)

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

這實際上是一個非常好的主意! – axtscz