我們正在開發一款應用程序,可將數據本地存儲在手機,服務器上並在用戶之間共享。每個用戶存儲和檢索數據的訪問權限大約爲20次,主要由字符串組成。該應用程序將跨平臺Android/iOS。所以在開始開發DB之前,你建議Json vs SQlite或者使用HTTP方法:GET,POST。 每種產品的優點和缺點是什麼,你有什麼建議。更適合Android/iOS開發的Json VS SQLite
回答
我不同意sql很慢。這不是像這些設備使用旋轉磁盤。在我的應用程序中,我實現了一個將JSON數據傳回的RESTful API。這很容易,因爲在iOS上,json可以輕鬆轉換爲iOS Native NSDictionary對象。
我建議使用sqlite或核心數據來存儲數據,因爲如果您需要查詢數據,以後會很高興。這就是數據庫的用途,可以輕鬆存儲和檢索數據。
作爲替代方案,您還可以考慮在服務器上構建SQLite數據庫,並將該文件實際下載到設備。這有它的好處,因爲你不需要在設備上進行實際的sqlite處理。
我建議遠離XML,不是因爲它不好,而是因爲傳回JSON數據已成爲標準,而且許多大公司正在從XML格式轉移,因爲需要處理能力。
在設計您的RESTful API時,使用已經可用的HTTP請求方法總是一個好習慣。使用GET檢索數據,POST以創建新數據,使用PUT更新數據並使用DELETE刪除數據。一旦你有一個設計精美的REST api,所有事情都應該落實到位,並且你將擁有一個可在客戶端和服務器端維護和擴展的應用程序。
這個問題真的取決於你自己的專業領域。如果你對JSON有很好的理解,那就使用它。 XML是另一種通過SOAP(或REST)將數據分發到您的平臺,服務器 - >設備 - >服務器的好方法。我自己的經驗是,使用GZIP的JSON很小且很快,並且存在很多快速的解析器。 XML有其不利之處,就是它迅速變大,但隨着時間的推移,通常會更容易維護,因爲語法是在XML的「名稱空間」中設置的。 SQLite速度很慢,因爲它的磁盤基於磁盤而且只能用於數據的持久存儲。在運行時儘可能少地訪問它。我的建議:服務器/設備上的JSON + GZIP,REST-api,儘可能多地存儲在設備的內存中,SQLite用於設備上的持久存儲,最後是服務器上的MySQL,用於持久存儲(免費,如果視圖和方法)。
但正如所說的,這完全取決於實施。
- 1. MySQL vs Sqlite:哪個更適合內存數據庫?
- 2. 哪個設備更適合iphone開發
- 3. YAML vs GPB vs JSON vs XML,哪種情況最適合?
- 4. XML vs JSON。哪一個更適合存儲小塊數據?
- 5. 「IronPython + .NET」vs「Python + PyQt」。哪一個更適合Windows應用程序開發?
- 6. SQLite適合併發閱讀嗎?
- 7. 哪個更適合我qt或VS我很開心
- 8. SessionMap vs Map哪個更適合Session?
- 9. 哪個更適合Thrift vs RESTful服務?
- 10. 什麼是Linux發行版更適合Python Web開發?
- 11. 最適合PHP的開發環境?
- 12. 打開SQLite VSIX(VS擴展)
- 13. 嚴格的HTML4.01更適合移動開發嗎?
- 14. JSON文件VS的SQLite的Android
- 15. Android - SQLite開發
- 16. SQLite是否適合論壇?
- 17. MySQL vs Firebird vs SQLite
- 18. Mono適合開發服務器嗎?
- 19. node.js適合web開發環境嗎?
- 20. JIRA Studio for .NET開發有多合適?
- 21. NoSQL數據庫適合開發Wiki嗎?
- 22. 哪個IDE最適合擴展開發?
- 23. Swift是否適合iOS遊戲開發?
- 24. 哪個Web開發框架適合我?
- 25. 爲什麼JDBC不適合Android開發
- 26. 哪個eclipse最適合Android開發?
- 27. Android開發更適合誰? Eclipse Helios或Eclipse Galileo?
- 28. 遊戲機是否更適合軟件開發?
- 29. 其中,移動GIS應用開發更適合我
- 30. Netbeans是否比Eclipse更適合Web服務開發?
您將需要所有這些:使用GET請求獲取JSON數據,然後將這些對象持久存儲在SQLite數據庫中。請注意,JSON不是數據庫;並且詢問_「Json vs Sqlite或使用HTTP方法:GET,POST」_根本沒有多大意義:那些是彼此無法替代的正交概念。但是,您可以使用XML而不是JSON,或者使用其他持久性存儲而不是SQLite,或者使用TCP而不是HTTP使用某種自定義協議。 – CouchDeveloper