當前位置:成語大全網 - 書法字典 - 為什麽在Android開發中很少使用JSON來存儲數據?

為什麽在Android開發中很少使用JSON來存儲數據?

JSON可以用來存儲數據對象,也是Google推薦的,可以代替Serializable的方法來存儲對象。以下是使用JSON存儲數據的原因。

在Android的開發中,涉及到對象存儲,通常的做法是直接實現‘Serializable’。關於這個接口,它保證了實現這個接口的類的對象可以被ObjectOutput/InputStream直接輸入輸出,也就是序列化。很方便,但也不好。

說到‘序列化’,大多數人想到的是‘可序列化’,但實際上‘序列化’只是指將對象的狀態信息轉換成可以存儲或傳輸的形式的過程。Java的‘可序列化’是壹種字節序列化。

“Serialziable”的壹個缺點是實現這個接口的類將失去靈活性。《有效的Java》第74條也指出了這壹點。實現這個可序列化的類將依賴於這個類的內部進化,這個進化根植於UID(Serial version UID)。如果不指定UID,每次序列化類時,都會根據類的當前狀態生成壹個UID。想象壹個場景:這個類已經導出,比如說導出到其他公司或者部門,然後妳修改了這個類,那麽當妳再次發布這個類的時候,其他公司或者部門的程序員可能會因為uid不同而得到壹個“InvalidClassException”。

造成這種情況的根本原因是妳無法控制序列化的實現,也無法控制UID的生成過程。這需要壹個自定義序列化窗體。在Android中,Google推薦JSON序列化。而且,Android程序員還可以使用Gson等工具進行序列化和反序列化。

與' Serializable '的字節序列化不同,JSON序列化是字符序列化。

此外,“Serializable”只適合存儲對象。因為' Serializalbe '在傳輸過程中需要做大量的IO,所以Android提供了' Parcelable '。

最後,題主不要拿數據庫和JSON、XML做比較,如果是,只能拿數據庫和文件存儲做比較。數據庫適合存儲大量關系復雜的數據,便於管理和查閱。相比之下,文件存儲適合於關系簡單的小數據量。