2012-06-21 8 views
5

私は、Phonegap(Cordova)アプリケーションでIOS/AndroidにJSONファイルをローカルに保存することを検討しています。phonegap jsonファイルを読み書きします

基本的には、サーバー($ .GETJSON)からJSONファイルを取得しています。まずJSONファイルを保存してから、そのファイルを取得して変更します。

私はFileWriterを見ましたが、MIMEタイプは表示されません...唯一の例はテキストファイルです。

ありがとうございます!

ニック

+1

なぜjsonを保存するにはmimeタイプが必要ですか?この場合のデータは何らかの理由でプレーンテキストformate – dhaval

答えて

13

ニックは、単にディスクにあなたのJSONデータを保存するためにFileWriter.writeを使用しています。とにかくJSONはテキストベースのファイルなので、MIMEタイプを設定する必要はありません。ファイルを再度ロードする準備ができたら、FileReader.readAsTextを使用します。 FileReaderの "onloadend"ハンドラでは、メソッドはイベントとともに呼び出され、event.target.resultはJSONデータになります。テキストをJSONオブジェクトに変換するには、

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

を実行します。 (テンプレートまたはデフォルト設定の)

+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