国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      機(jī)頂盒json數(shù)據(jù)解析存儲(chǔ)方法及系統(tǒng)的制作方法

      文檔序號(hào):9567508閱讀:1041來源:國(guó)知局
      機(jī)頂盒json數(shù)據(jù)解析存儲(chǔ)方法及系統(tǒng)的制作方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)方法及系統(tǒng)。
      【背景技術(shù)】
      [0002]JSON格式作為一種輕量級(jí)的數(shù)據(jù)交換格式,主要用于傳送數(shù)據(jù),其采用完全獨(dú)立于語言的文本格式,能夠?qū)avaScript對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從Web客戶機(jī)傳遞給服務(wù)器端程序。JavaScript很容易解釋JS0N,而且JSON可以表示比“名稱/值對(duì)”更復(fù)雜的結(jié)構(gòu),這些特性使JSON成為理想的數(shù)據(jù)交換語言,易于閱讀和編寫,同時(shí)也易于解析和生成。
      [0003]在機(jī)頂盒應(yīng)用中,JSON數(shù)據(jù)往往是從遠(yuǎn)程服務(wù)器端獲取。為了避免JSON數(shù)據(jù)被反復(fù)解析,通常會(huì)將JSON數(shù)據(jù)解析并存儲(chǔ)到機(jī)頂盒端。但是,在機(jī)頂盒端解析JSON數(shù)據(jù)存儲(chǔ)的過程中,會(huì)因?yàn)槟承┰?如機(jī)頂盒端或服務(wù)器端異常、網(wǎng)絡(luò)異常等),導(dǎo)致JSON數(shù)據(jù)無法繼續(xù)解析并存儲(chǔ),從而破壞了 JSON數(shù)據(jù)的完整性。為了保證JSON數(shù)據(jù)的完整性,傳統(tǒng)做法是當(dāng)出現(xiàn)異常時(shí),通知重新解析并存儲(chǔ)JSON數(shù)據(jù),這種方式需要對(duì)每種異常均做出處理,成本較高,而且需要全部重新解析存儲(chǔ)數(shù)據(jù),效率比較低,大大不利于JSON數(shù)據(jù)的解析。

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

      [0004]有鑒于此,有必要針對(duì)上述保證機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)完整性成本高、效率低的技術(shù)問題,提供一種機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)方法及系統(tǒng)。
      [0005]本發(fā)明提供一種機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)方法,包括如下步驟:
      [0006]SlO:在解析JSON數(shù)據(jù)時(shí),獲取JSON數(shù)據(jù)的數(shù)據(jù)列表,通過數(shù)據(jù)列表獲取JSON數(shù)據(jù)的總項(xiàng)數(shù)并進(jìn)行存儲(chǔ);
      [0007]S20:設(shè)置位置記錄,用于在每一項(xiàng)JSON數(shù)據(jù)全部解析并保存后,記錄已經(jīng)完整解析并保存的JSON數(shù)據(jù)的項(xiàng)數(shù)N ;
      [0008]S30:將位置記錄的項(xiàng)數(shù)N與總項(xiàng)數(shù)進(jìn)行比較,若位置記錄的項(xiàng)數(shù)N小于總項(xiàng)數(shù),則清除第N+1項(xiàng)JSON數(shù)據(jù),并由第N+1項(xiàng)JSON數(shù)據(jù)開始重新解析并進(jìn)行存儲(chǔ),直至位置記錄的項(xiàng)數(shù)與總項(xiàng)數(shù)相同。
      [0009]在進(jìn)一步的方式中,所述步驟S30還包括:
      [0010]在對(duì)當(dāng)前JSON數(shù)據(jù)進(jìn)行解析時(shí),檢測(cè)之前是否存在版本號(hào),若不存在則說明是第一次解析,則將當(dāng)前JSON數(shù)據(jù)重新進(jìn)行解析并存儲(chǔ),若存在,則獲取之前的版本號(hào)。
      [0011]在進(jìn)一步的方式中,所述步驟S30還包括:
      [0012]獲取當(dāng)前JSON數(shù)據(jù)的版本號(hào),并與之前的版本號(hào)進(jìn)行比較,若不一致,則當(dāng)前JSON數(shù)據(jù)全部進(jìn)行解析并存儲(chǔ),進(jìn)行更新;若一致,則將位置記錄的項(xiàng)數(shù)N與總項(xiàng)數(shù)進(jìn)行比較。
      [0013]在進(jìn)一步的方式中,所述步驟S30具體為:
      [0014]若位置記錄的項(xiàng)數(shù)N小于總項(xiàng)數(shù),JSON數(shù)據(jù)中含有指向另一 JSON數(shù)據(jù)的路徑時(shí),則清除第N+1項(xiàng)數(shù)據(jù),并且清除第N+1項(xiàng)指向的另一 JSON數(shù)據(jù),重新從第N+1項(xiàng)數(shù)據(jù)開始解析并存儲(chǔ),同時(shí)重新解析并存儲(chǔ)第N+1項(xiàng)指向的另一 JSON數(shù)據(jù)。
      [0015]本發(fā)明還提供一種機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)系統(tǒng),包括:
      [0016]總項(xiàng)數(shù)獲取單元,在解析JSON數(shù)據(jù)時(shí),獲取JSON數(shù)據(jù)的數(shù)據(jù)列表,通過數(shù)據(jù)列表獲取JSON數(shù)據(jù)的總項(xiàng)數(shù)并進(jìn)行存儲(chǔ);
      [0017]位置記錄單元,設(shè)置位置記錄,用于在每一項(xiàng)JSON數(shù)據(jù)全部解析并保存后,記錄已經(jīng)完整解析并保存的JSON數(shù)據(jù)的項(xiàng)數(shù)N ;
      [0018]解析存儲(chǔ)單元,將位置記錄的項(xiàng)數(shù)N與總項(xiàng)數(shù)進(jìn)行比較,若位置記錄的項(xiàng)數(shù)N小于總項(xiàng)數(shù),則清除第N+1項(xiàng)JSON數(shù)據(jù),并由第N+1項(xiàng)JSON數(shù)據(jù)開始重新解析并進(jìn)行存儲(chǔ),直至位置記錄的項(xiàng)數(shù)與總項(xiàng)數(shù)相同。
      [0019]在進(jìn)一步的方式中,所述解析存儲(chǔ)單元在對(duì)當(dāng)前JSON數(shù)據(jù)進(jìn)行解析時(shí),檢測(cè)之前是否存在版本號(hào),若不存在則說明是第一次解析,則將當(dāng)前JSON數(shù)據(jù)重新進(jìn)行解析并存儲(chǔ),若存在,則獲取之前的版本號(hào)。
      [0020]在進(jìn)一步的方式中,所述解析存儲(chǔ)單元獲取當(dāng)前JSON數(shù)據(jù)的版本號(hào),并與之前的版本號(hào)進(jìn)行比較,若不一致,則當(dāng)前JSON數(shù)據(jù)全部進(jìn)行解析并存儲(chǔ),進(jìn)行更新;若一致,則將位置記錄的項(xiàng)數(shù)N與總項(xiàng)數(shù)進(jìn)行比較。
      [0021]在進(jìn)一步的方式中,若位置記錄的項(xiàng)數(shù)N小于總項(xiàng)數(shù),JSON數(shù)據(jù)中含有指向另一JSON數(shù)據(jù)的路徑時(shí),所述解析存儲(chǔ)單元?jiǎng)t清除第N+1項(xiàng)數(shù)據(jù),并且清除第N+1項(xiàng)指向的另一 JSON數(shù)據(jù),重新從第N+1項(xiàng)數(shù)據(jù)開始解析并存儲(chǔ),同時(shí)重新解析并存儲(chǔ)第N+1項(xiàng)指向的另一 JSON數(shù)據(jù)。
      [0022]本發(fā)明機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)方法和系統(tǒng),獲取JSON數(shù)據(jù)的總項(xiàng)數(shù),并實(shí)時(shí)對(duì)JSON數(shù)據(jù)進(jìn)行位置記錄,將記錄的位置與總項(xiàng)數(shù)進(jìn)行對(duì)比,若記錄的位置小于總項(xiàng)數(shù),由第N+1項(xiàng)JSON數(shù)據(jù)開始重新解析并進(jìn)行存儲(chǔ),通過定位發(fā)生異常的位置來對(duì)JSON數(shù)據(jù)進(jìn)行解析和存儲(chǔ),不需要將所有JSON數(shù)據(jù)進(jìn)行解析和存儲(chǔ),從而大大提高了 JSON數(shù)據(jù)解析存儲(chǔ)的效率,大大降低了成本。
      【附圖說明】
      [0023]圖1是一個(gè)實(shí)施例中的機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)方法的流程圖;
      [0024]圖2是一個(gè)實(shí)施例中的機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)系統(tǒng)的結(jié)構(gòu)圖。
      【具體實(shí)施方式】
      [0025]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0026]圖1是一個(gè)實(shí)施例中的機(jī)頂盒JSON數(shù)據(jù)解析存儲(chǔ)方法的流程圖,如圖1所示,該方法包括如下步驟:
      [0027]SlO:在解析JSON數(shù)據(jù)時(shí),獲取JSON數(shù)據(jù)的數(shù)據(jù)列表,通過數(shù)據(jù)列表獲取JSON數(shù)據(jù)的總項(xiàng)數(shù)并進(jìn)行存儲(chǔ)。
      [0028]在機(jī)頂盒對(duì)JSON數(shù)據(jù)解析過程中,導(dǎo)致機(jī)頂盒無法完整解析及存儲(chǔ)JSON數(shù)據(jù)的異常有多種原因,對(duì)于每種異常機(jī)頂盒都需要重新解析存儲(chǔ)JSON數(shù)據(jù),這就會(huì)造成成本和效率的問題。為避免這個(gè)問題,該實(shí)施例中,由于在發(fā)生異常時(shí),機(jī)頂盒可能已經(jīng)解析并存儲(chǔ)了部分JSON數(shù)據(jù),故可以對(duì)已經(jīng)解析存儲(chǔ)的JSON數(shù)據(jù)進(jìn)行位置記錄,不需要重新去解析和存儲(chǔ)所有的JSON數(shù)據(jù)。具體的,為能夠?qū)SON數(shù)據(jù)進(jìn)行位置記錄,該步驟在解析JSON數(shù)據(jù)時(shí),首先獲取JSON數(shù)據(jù)的數(shù)據(jù)列表,然后通過數(shù)據(jù)列表獲取JSON數(shù)據(jù)的總項(xiàng)數(shù)并進(jìn)行存儲(chǔ),這樣獲取JSON數(shù)據(jù)的總長(zhǎng)度。
      [0029]S20:設(shè)置位置記錄,用于在每一項(xiàng)JSON數(shù)據(jù)全部解析并保存后,記錄已經(jīng)完整解析并保存的JSON數(shù)據(jù)的項(xiàng)數(shù)N。
      [0030]在獲取JSON數(shù)據(jù)的總項(xiàng)數(shù),也即JSON數(shù)據(jù)的總長(zhǎng)度后,設(shè)置位置記錄,位置記錄用于在每一項(xiàng)JSON數(shù)據(jù)全部解析并保存后,記錄已經(jīng)完整解析并存儲(chǔ)的項(xiàng)數(shù)N,位置記錄在每解析存儲(chǔ)完一項(xiàng)JSON數(shù)據(jù)后更新一次,即將所記錄的項(xiàng)數(shù)加1,這樣就能實(shí)時(shí)對(duì)已經(jīng)解析存儲(chǔ)的JSON數(shù)據(jù)進(jìn)行定位。
      [0031]S30:將位置記錄的項(xiàng)數(shù)N與總項(xiàng)數(shù)進(jìn)行比較,若位置記錄的項(xiàng)數(shù)N小于總項(xiàng)數(shù),則清除第N+1項(xiàng)JSON數(shù)據(jù),并由第N+1項(xiàng)JSON數(shù)據(jù)開始重新解析并進(jìn)行存儲(chǔ),直至位置記錄的項(xiàng)數(shù)與總項(xiàng)數(shù)相同。
      [0032]在記錄已經(jīng)完整解析并保存的JSON數(shù)據(jù)的項(xiàng)數(shù)N后,通過將已經(jīng)記錄的項(xiàng)數(shù)N與總項(xiàng)數(shù)進(jìn)行比較,就能夠知道JSON數(shù)據(jù)是否全部解析并存儲(chǔ)完。若位置記錄的項(xiàng)數(shù)N小于總項(xiàng)數(shù),則說明JSON數(shù)據(jù)沒有全部解析并存儲(chǔ)完,在解析和存儲(chǔ)第N+1項(xiàng)JSON數(shù)據(jù)時(shí)發(fā)生異常,第N+1項(xiàng)JSON數(shù)據(jù)沒有解析并存儲(chǔ)完,由于已經(jīng)對(duì)發(fā)生異常的位置進(jìn)行了記錄,則由第N+1項(xiàng)JSON數(shù)據(jù)開始解析并進(jìn)行存儲(chǔ),直至位置記錄的項(xiàng)數(shù)與總項(xiàng)數(shù)相同,這樣就大大提高了 JSON數(shù)據(jù)解析存儲(chǔ)的效率,大大降低了成本。
      [0033]此外,由于JSON數(shù)據(jù)中都有對(duì)應(yīng)的版本,不同版本的JSON數(shù)據(jù)版本號(hào)不同,對(duì)于不同版本號(hào)的JSON數(shù)據(jù),需要全部進(jìn)行重新解析和存儲(chǔ),故該步驟還包括:在對(duì)當(dāng)前JSON數(shù)據(jù)進(jìn)行解析時(shí),檢測(cè)之前是否存在版本號(hào),若不存在則說明是第一次解析,則將當(dāng)前JSON數(shù)據(jù)重新進(jìn)行解析并存儲(chǔ),若存在,則獲取之前的版本號(hào)。
      [0034]更進(jìn)一步的,獲取當(dāng)前JSON數(shù)據(jù)的版本號(hào),并與之前的版本號(hào)進(jìn)行比較,若不一致,則當(dāng)前JSON數(shù)據(jù)全部進(jìn)行解析并存儲(chǔ),進(jìn)行更新;若一致,則將位置記錄的項(xiàng)數(shù)N與總項(xiàng)數(shù)進(jìn)行比較。
      [0035]同時(shí),由于JSON數(shù)據(jù)每一項(xiàng)內(nèi)容的值可以是任意字符串,該字符串有可能表示指向另一 JSON數(shù)據(jù)的路徑,需要通過該路徑解析另一 JSON數(shù)據(jù)。在該實(shí)施例中,若位置記錄的項(xiàng)數(shù)N小于總項(xiàng)數(shù),JSON數(shù)據(jù)中含有指向另一 JSON數(shù)據(jù)的路徑時(shí),則清除第N+1項(xiàng)數(shù)據(jù),并且清除第N+1項(xiàng)指向的另一 JSON數(shù)據(jù),重新從第N+1項(xiàng)數(shù)據(jù)開始解析并存儲(chǔ),同時(shí)重新解析并存儲(chǔ)第N+1項(xiàng)指向的另一 JSON數(shù)據(jù)。<
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1