亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種Json數(shù)據(jù)的存儲(chǔ)方法及裝置的制造方法

文檔序號(hào):9839658閱讀:453來源:國知局
一種Json數(shù)據(jù)的存儲(chǔ)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及數(shù)據(jù)存儲(chǔ)技術(shù),特別涉及一種Json數(shù)據(jù)的存儲(chǔ)方法及裝置。
【背景技術(shù)】
[0002]本申請(qǐng)涉及應(yīng)用程序處理領(lǐng)域,尤其涉及在內(nèi)存比較緊張的嵌入式系統(tǒng)中,基于Json存儲(chǔ)較大信息量的配置或數(shù)據(jù)摘要的方法及系統(tǒng)。
[0003]現(xiàn)有技術(shù)下,Json作為一種數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)得到了廣泛的應(yīng)用,Json是一種比較靈活而且直觀的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),它具有良好的兼容性和可擴(kuò)展性,很適合作為客戶端與設(shè)備端之間的交互載體。
[0004]Json以字符串的形式進(jìn)行數(shù)據(jù)存儲(chǔ),對(duì)存儲(chǔ)的數(shù)據(jù)加入描述,在設(shè)備開發(fā)和調(diào)試階段有很好的直觀性。具體的,Json數(shù)據(jù)通常以數(shù)據(jù)表的形式存在,Json數(shù)據(jù)表主要有key和value兩個(gè)屬性值,key是一個(gè)字符串,用于標(biāo)識(shí)鍵值對(duì)的名稱,value為對(duì)應(yīng)的數(shù)值。在存儲(chǔ)大量的配置信息時(shí),Json首先將數(shù)據(jù)按照key-value鍵值對(duì)的形式進(jìn)行序列化,進(jìn)而為每一個(gè)鍵值對(duì)動(dòng)態(tài)申請(qǐng)內(nèi)存,并把相應(yīng)的數(shù)據(jù)通過關(guān)系鏈的形式存放到這段內(nèi)存中。如果需要存儲(chǔ)的數(shù)據(jù)量很大時(shí),Json會(huì)申請(qǐng)大量的內(nèi)存并將序列后的數(shù)據(jù)長時(shí)間存放在這片內(nèi)存中。
[0005]顯然,以Json結(jié)構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ),需要大數(shù)量節(jié)點(diǎn)進(jìn)行配置,這會(huì)占用較大的內(nèi)存,使得本來內(nèi)存比較小的嵌入式系統(tǒng)內(nèi)存資源更加顯得緊湊;另一方面,Json數(shù)據(jù)表具有很強(qiáng)的擴(kuò)展性,能夠隨時(shí)進(jìn)行添加、修改等操作,但對(duì)大型的Json表增刪查找只會(huì)涉及小面積范圍數(shù)據(jù)的變更,如果整個(gè)Json表長時(shí)間駐存在內(nèi)存中會(huì)導(dǎo)致大量內(nèi)存的浪費(fèi)。
[0006]現(xiàn)有Json的模塊化技術(shù)大多應(yīng)用在前端web或者內(nèi)存比較充足的平臺(tái)上,而且模塊數(shù)據(jù)的解析依賴功能模塊,不適合嵌入式系統(tǒng)的應(yīng)用場景,也不利于跨平臺(tái)的使用;此夕卜,現(xiàn)有的Json模塊化技術(shù)要求模塊中的數(shù)據(jù)必須為一個(gè)完整的Json表,不適合包含大數(shù)量節(jié)點(diǎn)的Json表的存儲(chǔ)和處理。
[0007]因此,為了在嵌入式系統(tǒng)中實(shí)現(xiàn)Json數(shù)據(jù)在存儲(chǔ),同時(shí)也兼容Json數(shù)據(jù)對(duì)內(nèi)存消耗過大的缺陷,需要對(duì)Json數(shù)據(jù)的存儲(chǔ)機(jī)制進(jìn)行改進(jìn),保證Json數(shù)據(jù)在運(yùn)行過程中不會(huì)因?yàn)楣?jié)點(diǎn)的擴(kuò)充導(dǎo)致內(nèi)存無限增大。

【發(fā)明內(nèi)容】

[0008]本申請(qǐng)實(shí)施例提供一種Json數(shù)據(jù)的存儲(chǔ)方法及裝置,用以在內(nèi)存不充足的環(huán)境中,實(shí)現(xiàn)Json數(shù)據(jù)的順利存儲(chǔ)。
[0009]本申請(qǐng)實(shí)施例提供的具體技術(shù)方案如下:
[0010]一種Json數(shù)據(jù)存儲(chǔ)方法,包括:
[0011 ]將Json數(shù)據(jù)表按照設(shè)定的路徑深度N分割為若干Json數(shù)據(jù)信息;
[0012]分別提取每一個(gè)Json數(shù)據(jù)信息的關(guān)鍵信息生成相應(yīng)的Json摘要信息;
[0013]分別針對(duì)每一個(gè)Json數(shù)據(jù)信息和相應(yīng)的Json摘要信息生成相應(yīng)的關(guān)系索引信息;
[0014]將各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息通過內(nèi)存映射至指定存儲(chǔ)區(qū)域中保存。
[0015]較佳的,將Json數(shù)據(jù)表按照設(shè)定的路徑深度N分割為若干Json數(shù)據(jù)信息后,在分別針對(duì)每一個(gè)Json數(shù)據(jù)信息和相應(yīng)的Json摘要信息生成相應(yīng)的關(guān)系索引信息之前,進(jìn)一步包括:
[0016]針對(duì)每一個(gè)占用內(nèi)存數(shù)據(jù)量超過預(yù)設(shè)數(shù)據(jù)量閾值的Json數(shù)據(jù)信息,再次分割為若干個(gè)Json數(shù)據(jù)信息,其中再次劃分后的每一個(gè)Json數(shù)據(jù)信息所占用內(nèi)存數(shù)據(jù)量不大于所述預(yù)設(shè)數(shù)據(jù)量閾值。
[0017]較佳的,將各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息通過內(nèi)存映射至指定存儲(chǔ)區(qū)域中保存,包括:
[0018]在內(nèi)存中創(chuàng)建內(nèi)存交換區(qū),以及在內(nèi)存交換區(qū)和指定的存儲(chǔ)區(qū)域之間建立映射關(guān)系;
[0019]將Json數(shù)據(jù)表分割后獲得的各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息的總占用內(nèi)存數(shù)據(jù)量大小緩存在內(nèi)存交換區(qū)中;
[0020]基于所述述映射關(guān)系,將Json數(shù)據(jù)表分割后獲得的各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息,經(jīng)內(nèi)存交換區(qū)映射至指定存儲(chǔ)區(qū)域內(nèi)的空閑區(qū)域中。
[0021]較佳的,基于所述述映射關(guān)系,將Json數(shù)據(jù)表分割后獲得的各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息,經(jīng)內(nèi)存交換區(qū)映射至指定存儲(chǔ)區(qū)域內(nèi)的空閑區(qū)域中,包括:[0022 ]可以根據(jù)各個(gè)Json數(shù)據(jù)信息、J son摘要信息和關(guān)系索引信息的總占用內(nèi)存數(shù)據(jù)量判斷所述指定存儲(chǔ)區(qū)域中是否存在相應(yīng)大小的空閑區(qū)域,若是,則基于所述映射關(guān)系進(jìn)行映射,否則,先在所述指定存儲(chǔ)區(qū)域中創(chuàng)建相應(yīng)大小的空閑區(qū)域后,再基于所述映射關(guān)系進(jìn)行映射。
[0023]較佳的,進(jìn)一步包括:
[0024]在內(nèi)存或不同于所述指定存儲(chǔ)區(qū)域的其他存儲(chǔ)介質(zhì)中記錄各個(gè)關(guān)系索引信息的索引配置信息。
[0025]較佳的,進(jìn)一步包括:
[0026]接收到針對(duì)任一Json數(shù)據(jù)信息的更新指令時(shí),讀取所述索引配置信息;
[0027]基于所述索引配置信息在所述指定存儲(chǔ)區(qū)域中讀取所述任一Json數(shù)據(jù)信息對(duì)應(yīng)的關(guān)系索引ig息;
[0028]基于讀取的關(guān)系索引信息,在所述指定存儲(chǔ)區(qū)域中獲取所述任一Json數(shù)據(jù)信息對(duì)應(yīng)的Json摘要信息,再基于獲取的Json摘要信息定位所述任一 Json數(shù)據(jù)信息;
[0029]根據(jù)所述更新指令對(duì)所述任一Json數(shù)據(jù)信息進(jìn)行數(shù)據(jù)更新,以及對(duì)相應(yīng)的Json摘要信息和關(guān)系索引信息進(jìn)行適應(yīng)性更新;
[0030]將更新后的所述任一Json數(shù)據(jù)信息及相應(yīng)的Json摘要信息和關(guān)系索引信息,進(jìn)行所述指定存儲(chǔ)區(qū)域中重新進(jìn)行保存。
[0031]一種Json數(shù)據(jù)存儲(chǔ)裝置,包括:
[0032]分割模塊,用于將Json數(shù)據(jù)表按照設(shè)定的路徑深度N分割為若干Json數(shù)據(jù)信息;
[0033]第一處理模塊,用于分別提取每一個(gè)Json數(shù)據(jù)信息的關(guān)鍵信息生成相應(yīng)的Json摘要信息;
[0034]第二處理模塊,用于分別針對(duì)每一個(gè)Json數(shù)據(jù)信息和相應(yīng)的Json摘要信息生成相應(yīng)的關(guān)系索引ig息;
[0035]映射模塊,用于將各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息通過內(nèi)存映射至指定存儲(chǔ)區(qū)域中保存。
[0036]較佳的,所述分割單元將Json數(shù)據(jù)表按照設(shè)定的路徑深度N分割為若干Json數(shù)據(jù)信息后,在所述第二處理模塊在分別針對(duì)每一個(gè)Json數(shù)據(jù)信息和相應(yīng)的Json摘要信息生成相應(yīng)的關(guān)系索引信息之前,所述分割單元進(jìn)一步用于:
[0037]針對(duì)每一個(gè)占用內(nèi)存數(shù)據(jù)量超過預(yù)設(shè)數(shù)據(jù)量閾值的Json數(shù)據(jù)信息,再次分割為若干個(gè)Json數(shù)據(jù)信息,其中再次劃分后的每一個(gè)Json數(shù)據(jù)信息所占用內(nèi)存數(shù)據(jù)量不大于所述預(yù)設(shè)數(shù)據(jù)量閾值。
[0038]較佳的,將各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息通過內(nèi)存映射至指定存儲(chǔ)區(qū)域中保存時(shí),所述映射單元用于:
[0039]在內(nèi)存中創(chuàng)建內(nèi)存交換區(qū),以及在內(nèi)存交換區(qū)和指定的存儲(chǔ)區(qū)域之間建立映射關(guān)系;
[0040]將Json數(shù)據(jù)表分割后獲得的各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息的總占用內(nèi)存數(shù)據(jù)量大小緩存在內(nèi)存交換區(qū)中;
[0041 ]基于所述述映射關(guān)系,將Json數(shù)據(jù)表分割后獲得的各個(gè)Json數(shù)據(jù)信息、Json摘要信息和關(guān)系索引信息,經(jīng)內(nèi)存交換區(qū)映射至指定存儲(chǔ)區(qū)域內(nèi)的空閑區(qū)域中。
[0042]較佳的,基于所述述映射關(guān)系,將Js
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1