[發明專利]一種對象序列化方法、裝置、機器可讀介質以及系統在審
| 申請號: | 202010042730.3 | 申請日: | 2020-01-15 |
| 公開(公告)號: | CN111241346A | 公開(公告)日: | 2020-06-05 |
| 發明(設計)人: | 曹瑋;吳永軍;陳萌輝 | 申請(專利權)人: | 上海依圖網絡科技有限公司 |
| 主分類號: | G06F16/84 | 分類號: | G06F16/84;G06F40/151;G06F40/14;G06F9/448 |
| 代理公司: | 上海華誠知識產權代理有限公司 31300 | 代理人: | 徐穎聰 |
| 地址: | 200051 上海市徐匯*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 對象 序列 方法 裝置 機器 可讀 介質 以及 系統 | ||
本發明涉及計算機技術領域,特別地公開了一種對象序列化方法、裝置、機器可讀介質以及系統。該對象序列化方法,包括:獲取對象的至少一個屬性,屬性包括屬性名、屬性類型和屬性值;根據對象創建包裝對象,包裝對象的每個屬性中的屬性名和屬性值與對象的相應屬性的屬性名和屬性值相同,而對于包裝對象的每個屬性的屬性類型:在對象的相應屬性的屬性類型為預設的序列化類型的情況下,包裝對象的屬性類型與對象的屬性類型相同;在對象的相應屬性的屬性類型不是預設的序列化類型的情況下,包裝對象的屬性類型為與對象的屬性類型對應的預設序列化類型;序列化包裝對象。序列化后的對象占用存儲空間的大小,提高網絡傳輸速度,提高了應用的整體性能。
技術領域
本發明涉及計算機技術領域,特別地公開了一種對象序列化方法、裝置、機器可讀介質以及系統。
背景技術
序列化(Serialization)是一種將對象的狀態信息轉換為可以存儲或傳輸的形式的過程。在該過程中,首先將序列化的結果寫入緩沖區,再將緩沖區中的內容輸出或寫入磁盤。基于目前的應用場景,序列化的轉換形式主要包括Json對象簡譜、Xml可擴展標記語言、Binary二進制串等。在云計算及高性能計算領域,序列化的性能通常會對系統的計算性能造成很大的影響。
現有的對象序列化技術,大多數情況為了可讀性都會選擇Jackson或Fastjson等框架將對象序列化成Json格式,對象序列化后的字節大小較大,序列化/反序列的性能也不高。Protostuff等框架序列化/反序列性能較好,能有效降低對CPU資源的消耗。但是對復雜類創建的對象(類有繼承、屬性中有其他類嵌套、屬性有日期、包裝類等特殊類型)序列化又會產生膨脹問題,序列化后的字節大小比序列化成Json格式更大。
發明內容
本申請實施例提供了一種對象序列化方法,包括:
獲取對象的至少一個屬性,屬性包括屬性名、屬性類型和屬性值;
根據對象創建包裝對象,包裝對象的每個屬性中的屬性名和屬性值與對象的相應屬性的屬性名和屬性值相同,而對于包裝對象的每個屬性的屬性類型:
在對象的相應屬性的屬性類型為預設的序列化類型的情況下,包裝對象的屬性類型與對象的屬性類型相同;
在對象的相應屬性的屬性類型不是預設的序列化類型的情況下,包裝對象的屬性類型為與對象的屬性類型對應的預設序列化類型;
序列化包裝對象。
可選地,根據對象創建包裝對象,還包括:
在對象包含繼承關系的情況下,于創建的包裝對象中去除繼承關系。
可選地,還包括:
序列化類型包括執行序列化方法的編程語言的內置類型。
可選地,序列化類型還包括:字符串類型,日期類型,集合類型和/或自定義類型中的至少一種。
可選地,還包括:
在對象的屬性類型是日期類型的情況下,包裝對象中對應的序列化類型為字符串類型。
可選地,還包括:
將包裝類型的屬性類型轉換成包裝類型對應的基本類型。
本申請還提供了一種對象反序列化方法,包括:
獲取已序列化的對象的數據,基于數據獲取對象的屬性,屬性包括屬性名,序列化類型,屬性值;
從預先配置的序列化類型與屬性類型的對應關系中,獲取與對象的序列化類型對應的屬性類型;
根據序列化類型對應的屬性類型,屬性名建立對象,基于屬性值對對象賦值。
可選地,還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海依圖網絡科技有限公司,未經上海依圖網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010042730.3/2.html,轉載請聲明來源鉆瓜專利網。





