簡體   English   中英

Android:在Android中為應用程序離線存儲JSON數據的最佳方法是什么?

[英]Android: what is the best way to store JSON data offline for the app in android?

我想實現一個應用程序,它將顯示路線編號,騎手已登陸谷歌地圖。 因此,要查找路由號,我需要一些有關路由的信息,這些信息在JSON文件中定義。 JSON文件中的信息將從應用程序中脫機處理和解析。 它也應該與應用程序一起安裝和卸載。 JSON文件包含100多個route_direction。 它看起來像下面的代碼。 我可以在哪個文件夾中存儲JSON文件到我的Android項目中? 存儲這樣的數據的最佳方法是什么?

JSON文件:

 {"route_direction":[ { 1_ab:{ { stopsName_arrivalTime:{"abc":{"mon-fri":[05:33,06:00,06:30,...], "sat":[], "son":[] } }, stops_loca:{lat:53.337994, long:10.600423} , }, { stopsName_arrivalTime:{"def":{"mon-fri":[], "sat":[], "son":[] } }, stops_loca:{lat:53.740624, long:10.101322} }, { stopsName_arrivalTime:{"hgk":{"mon-fri":[], "sat":[], "son":[] } }, stops_loca:{lat:53.644834, long:10.203372} } } }, {1_ba:{ { stopsName_arrivalTime:{"hgk":{"mon-fri":[05:33,06:00,06:30], "sat":[], "son":[] } }, stops_loca:{lat:53.437994, long:10.400423} , }, { stopsName_arrivalTime:{"def":{"mon-fri":[], "sat":[], "son":[] } }, stops_loca:{lat:53.540624, long:10.601322} }, { stopsName_arrivalTime:{"abc":{"mon-fri":[], "sat":[], "son":[] } }, stops_loca:{lat:53.244834, long:10.703372} } } },........ ] } 

也許你可以使用SharedPreferences保存它們。 您可以通過執行以下操作來存儲json對象/數組:

將json保存到SharedPreferences:

    PreferenceManager.getDefaultSharedPreferences(context).edit()
.putString("theJson",jsonObject.toString()).apply();

獲取存儲的json:

JsonObject jsonObject = PreferenceManager.
getDefaultSharedPreferences(this).getString("theJson","");

基本上,有兩個地方可以存儲原始資源: assets /res / raw / (原始資源)。 這些已經討論了很多,例如,請參閱鏈接:

Android中資產和原始資源的原因

http://thedevelopersinfo.com/2009/11/27/using-files-as-raw-resources-in-android/

http://www.41post.com/3985/programming/android-loading-files-from-the-assets-and-raw-folders

您可以在資產文件夾中存儲要與應用程序打包的abitrary文件

https://developer.android.com/tools/projects/index.html

主/資產/

這是空的。 您可以使用它來存儲原始資產文件。 您在此處保存的文件將按原樣編譯為.apk文件,並保留原始文件名。 您可以使用URI以與典型文件系統相同的方式導航此目錄,並使用AssetManager將文件作為字節流讀取。 例如,這是紋理和游戲數據的良好位置。

請參閱有關如何從資產中讀取的此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM