机顶盒json数据解析存储方法及系统的制作方法

文档序号:9567508阅读:895来源:国知局
机顶盒json数据解析存储方法及系统的制作方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种机顶盒JSON数据解析存储方法及系统。
【背景技术】
[0002]JSON格式作为一种轻量级的数据交换格式,主要用于传送数据,其采用完全独立于语言的文本格式,能够将JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。JavaScript很容易解释JS0N,而且JSON可以表示比“名称/值对”更复杂的结构,这些特性使JSON成为理想的数据交换语言,易于阅读和编写,同时也易于解析和生成。
[0003]在机顶盒应用中,JSON数据往往是从远程服务器端获取。为了避免JSON数据被反复解析,通常会将JSON数据解析并存储到机顶盒端。但是,在机顶盒端解析JSON数据存储的过程中,会因为某些原因(如机顶盒端或服务器端异常、网络异常等),导致JSON数据无法继续解析并存储,从而破坏了 JSON数据的完整性。为了保证JSON数据的完整性,传统做法是当出现异常时,通知重新解析并存储JSON数据,这种方式需要对每种异常均做出处理,成本较高,而且需要全部重新解析存储数据,效率比较低,大大不利于JSON数据的解析。

【发明内容】

[0004]有鉴于此,有必要针对上述保证机顶盒JSON数据解析存储完整性成本高、效率低的技术问题,提供一种机顶盒JSON数据解析存储方法及系统。
[0005]本发明提供一种机顶盒JSON数据解析存储方法,包括如下步骤:
[0006]SlO:在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储;
[0007]S20:设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N ;
[0008]S30:将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。
[0009]在进一步的方式中,所述步骤S30还包括:
[0010]在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。
[0011]在进一步的方式中,所述步骤S30还包括:
[0012]获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。
[0013]在进一步的方式中,所述步骤S30具体为:
[0014]若位置记录的项数N小于总项数,JSON数据中含有指向另一 JSON数据的路径时,则清除第N+1项数据,并且清除第N+1项指向的另一 JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一 JSON数据。
[0015]本发明还提供一种机顶盒JSON数据解析存储系统,包括:
[0016]总项数获取单元,在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储;
[0017]位置记录单元,设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N ;
[0018]解析存储单元,将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。
[0019]在进一步的方式中,所述解析存储单元在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。
[0020]在进一步的方式中,所述解析存储单元获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。
[0021]在进一步的方式中,若位置记录的项数N小于总项数,JSON数据中含有指向另一JSON数据的路径时,所述解析存储单元则清除第N+1项数据,并且清除第N+1项指向的另一 JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一 JSON数据。
[0022]本发明机顶盒JSON数据解析存储方法和系统,获取JSON数据的总项数,并实时对JSON数据进行位置记录,将记录的位置与总项数进行对比,若记录的位置小于总项数,由第N+1项JSON数据开始重新解析并进行存储,通过定位发生异常的位置来对JSON数据进行解析和存储,不需要将所有JSON数据进行解析和存储,从而大大提高了 JSON数据解析存储的效率,大大降低了成本。
【附图说明】
[0023]图1是一个实施例中的机顶盒JSON数据解析存储方法的流程图;
[0024]图2是一个实施例中的机顶盒JSON数据解析存储系统的结构图。
【具体实施方式】
[0025]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0026]图1是一个实施例中的机顶盒JSON数据解析存储方法的流程图,如图1所示,该方法包括如下步骤:
[0027]SlO:在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储。
[0028]在机顶盒对JSON数据解析过程中,导致机顶盒无法完整解析及存储JSON数据的异常有多种原因,对于每种异常机顶盒都需要重新解析存储JSON数据,这就会造成成本和效率的问题。为避免这个问题,该实施例中,由于在发生异常时,机顶盒可能已经解析并存储了部分JSON数据,故可以对已经解析存储的JSON数据进行位置记录,不需要重新去解析和存储所有的JSON数据。具体的,为能够对JSON数据进行位置记录,该步骤在解析JSON数据时,首先获取JSON数据的数据列表,然后通过数据列表获取JSON数据的总项数并进行存储,这样获取JSON数据的总长度。
[0029]S20:设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N。
[0030]在获取JSON数据的总项数,也即JSON数据的总长度后,设置位置记录,位置记录用于在每一项JSON数据全部解析并保存后,记录已经完整解析并存储的项数N,位置记录在每解析存储完一项JSON数据后更新一次,即将所记录的项数加1,这样就能实时对已经解析存储的JSON数据进行定位。
[0031]S30:将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。
[0032]在记录已经完整解析并保存的JSON数据的项数N后,通过将已经记录的项数N与总项数进行比较,就能够知道JSON数据是否全部解析并存储完。若位置记录的项数N小于总项数,则说明JSON数据没有全部解析并存储完,在解析和存储第N+1项JSON数据时发生异常,第N+1项JSON数据没有解析并存储完,由于已经对发生异常的位置进行了记录,则由第N+1项JSON数据开始解析并进行存储,直至位置记录的项数与总项数相同,这样就大大提高了 JSON数据解析存储的效率,大大降低了成本。
[0033]此外,由于JSON数据中都有对应的版本,不同版本的JSON数据版本号不同,对于不同版本号的JSON数据,需要全部进行重新解析和存储,故该步骤还包括:在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。
[0034]更进一步的,获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。
[0035]同时,由于JSON数据每一项内容的值可以是任意字符串,该字符串有可能表示指向另一 JSON数据的路径,需要通过该路径解析另一 JSON数据。在该实施例中,若位置记录的项数N小于总项数,JSON数据中含有指向另一 JSON数据的路径时,则清除第N+1项数据,并且清除第N+1项指向的另一 JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一 JSON数据。<
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1