1.一种机顶盒JSON数据解析存储方法,其特征在于,包括如下步骤:
S10:在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储;
S20:设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N,位置记录在每解析存储完一项JSON数据后更新一次;
S30:将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。
2.根据权利要求1所述的机顶盒JSON数据解析存储方法,其特征在于,所述步骤S30还包括:
在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。
3.根据权利要求2所述的机顶盒JSON数据解析存储方法,其特征在于,所述步骤S30还包括:
获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。
4.根据权利要求3所述的机顶盒JSON数据解析存储方法,其特征在于,所述步骤S30具体为:
若位置记录的项数N小于总项数,JSON数据中含有指向另一JSON数据的路径时,则清除第N+1项数据,并且清除第N+1项指向的另一JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一JSON数据。
5.一种机顶盒JSON数据解析存储系统,其特征在于,包括:
总项数获取单元,在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储;
位置记录单元,设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N,位置记录在每解析存储完一项JSON数据后更新一次;
解析存储单元,将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。
6.根据权利要求5所述的机顶盒JSON数据解析存储系统,其特征在于,所述解析存储单元在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。
7.根据权利要求6所述的机顶盒JSON数据解析存储系统,其特征在于,所述解析存储单元获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。
8.根据权利要求7所述的机顶盒JSON数据解析存储系统,其特征在于,
若位置记录的项数N小于总项数,JSON数据中含有指向另一JSON数据的路径时,所述解析存储单元则清除第N+1项数据,并且清除第N+1项指向的另一JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一JSON数据。
机顶盒JSON数据解析存储方法及系统\n技术领域\n[0001] 本发明涉及通信领域,尤其涉及一种机顶盒JSON数据解析存储方法及系统。\n背景技术\n[0002] JSON格式作为一种轻量级的数据交换格式,主要用于传送数据,其采用完全独立于语言的文本格式,能够将JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。JavaScript很容易解释JSON,而且JSON可以表示比“名称/值对”更复杂的结构,这些特性使JSON成为理想的数据交换语言,易于阅读和编写,同时也易于解析和生成。\n[0003] 在机顶盒应用中,JSON数据往往是从远程服务器端获取。为了避免JSON数据被反复解析,通常会将JSON数据解析并存储到机顶盒端。但是,在机顶盒端解析JSON数据存储的过程中,会因为某些原因(如机顶盒端或服务器端异常、网络异常等),导致JSON数据无法继续解析并存储,从而破坏了JSON数据的完整性。为了保证JSON数据的完整性,传统做法是当出现异常时,通知重新解析并存储JSON数据,这种方式需要对每种异常均做出处理,成本较高,而且需要全部重新解析存储数据,效率比较低,大大不利于JSON数据的解析。\n发明内容\n[0004] 有鉴于此,有必要针对上述保证机顶盒JSON数据解析存储完整性成本高、效率低的技术问题,提供一种机顶盒JSON数据解析存储方法及系统。\n[0005] 本发明提供一种机顶盒JSON数据解析存储方法,包括如下步骤:\n[0006] S10:在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储;\n[0007] S20:设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N;\n[0008] S30:将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。\n[0009] 在进一步的方式中,所述步骤S30还包括:\n[0010] 在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。\n[0011] 在进一步的方式中,所述步骤S30还包括:\n[0012] 获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。\n[0013] 在进一步的方式中,所述步骤S30具体为:\n[0014] 若位置记录的项数N小于总项数,JSON数据中含有指向另一JSON数据的路径时,则清除第N+1项数据,并且清除第N+1项指向的另一JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一JSON数据。\n[0015] 本发明还提供一种机顶盒JSON数据解析存储系统,包括:\n[0016] 总项数获取单元,在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储;\n[0017] 位置记录单元,设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N;\n[0018] 解析存储单元,将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。\n[0019] 在进一步的方式中,所述解析存储单元在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。\n[0020] 在进一步的方式中,所述解析存储单元获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。\n[0021] 在进一步的方式中,若位置记录的项数N小于总项数,JSON数据中含有指向另一JSON数据的路径时,所述解析存储单元则清除第N+1项数据,并且清除第N+1项指向的另一JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一JSON数据。\n[0022] 本发明机顶盒JSON数据解析存储方法和系统,获取JSON数据的总项数,并实时对JSON数据进行位置记录,将记录的位置与总项数进行对比,若记录的位置小于总项数,由第N+1项JSON数据开始重新解析并进行存储,通过定位发生异常的位置来对JSON数据进行解析和存储,不需要将所有JSON数据进行解析和存储,从而大大提高了JSON数据解析存储的效率,大大降低了成本。\n附图说明\n[0023] 图1是一个实施例中的机顶盒JSON数据解析存储方法的流程图;\n[0024] 图2是一个实施例中的机顶盒JSON数据解析存储系统的结构图。\n具体实施方式\n[0025] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。\n[0026] 图1是一个实施例中的机顶盒JSON数据解析存储方法的流程图,如图1所示,该方法包括如下步骤:\n[0027] S10:在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储。\n[0028] 在机顶盒对JSON数据解析过程中,导致机顶盒无法完整解析及存储JSON数据的异常有多种原因,对于每种异常机顶盒都需要重新解析存储JSON数据,这就会造成成本和效率的问题。为避免这个问题,该实施例中,由于在发生异常时,机顶盒可能已经解析并存储了部分JSON数据,故可以对已经解析存储的JSON数据进行位置记录,不需要重新去解析和存储所有的JSON数据。具体的,为能够对JSON数据进行位置记录,该步骤在解析JSON数据时,首先获取JSON数据的数据列表,然后通过数据列表获取JSON数据的总项数并进行存储,这样获取JSON数据的总长度。\n[0029] S20:设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N。\n[0030] 在获取JSON数据的总项数,也即JSON数据的总长度后,设置位置记录,位置记录用于在每一项JSON数据全部解析并保存后,记录已经完整解析并存储的项数N,位置记录在每解析存储完一项JSON数据后更新一次,即将所记录的项数加1,这样就能实时对已经解析存储的JSON数据进行定位。\n[0031] S30:将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。\n[0032] 在记录已经完整解析并保存的JSON数据的项数N后,通过将已经记录的项数N与总项数进行比较,就能够知道JSON数据是否全部解析并存储完。若位置记录的项数N小于总项数,则说明JSON数据没有全部解析并存储完,在解析和存储第N+1项JSON数据时发生异常,第N+1项JSON数据没有解析并存储完,由于已经对发生异常的位置进行了记录,则由第N+1项JSON数据开始解析并进行存储,直至位置记录的项数与总项数相同,这样就大大提高了JSON数据解析存储的效率,大大降低了成本。\n[0033] 此外,由于JSON数据中都有对应的版本,不同版本的JSON数据版本号不同,对于不同版本号的JSON数据,需要全部进行重新解析和存储,故该步骤还包括:在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。\n[0034] 更进一步的,获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。\n[0035] 同时,由于JSON数据每一项内容的值可以是任意字符串,该字符串有可能表示指向另一JSON数据的路径,需要通过该路径解析另一JSON数据。在该实施例中,若位置记录的项数N小于总项数,JSON数据中含有指向另一JSON数据的路径时,则清除第N+1项数据,并且清除第N+1项指向的另一JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一JSON数据。\n[0036] 该机顶盒JSON数据解析存储方法,获取JSON数据的总项数,并实时对JSON数据进行位置记录,将记录的位置与总项数进行对比,若记录的位置小于总项数,由第N+1项JSON数据开始重新解析并进行存储,通过定位发生异常的位置来对JSON数据进行解析和存储,不需要将所有JSON数据进行解析和存储,从而大大提高了JSON数据解析存储的效率,大大降低了成本。\n[0037] 同时,本发明还提供一种机顶盒JSON数据解析存储系统,如图2所示,该系统包括:\n[0038] 总项数获取单元100,在解析JSON数据时,获取JSON数据的数据列表,通过数据列表获取JSON数据的总项数并进行存储。\n[0039] 在机顶盒对JSON数据解析过程中,导致机顶盒无法完整解析及存储JSON数据的异常有多种原因,对于每种异常机顶盒都需要重新解析存储JSON数据,这就会造成成本和效率的问题。为避免这个问题,该实施例中,由于在发生异常时,机顶盒可能已经解析并存储了部分JSON数据,故可以对已经解析存储的JSON数据进行位置记录,不需要重新去解析和存储所有的JSON数据。具体的,为能够对JSON数据进行位置记录,在解析JSON数据时,总项数获取单元100首先获取JSON数据的数据列表,然后通过数据列表获取JSON数据的总项数并进行存储,这样获取JSON数据的总长度。\n[0040] 位置记录单元200,设置位置记录,用于在每一项JSON数据全部解析并保存后,记录已经完整解析并保存的JSON数据的项数N。\n[0041] 在获取JSON数据的总项数,也即JSON数据的总长度后,位置记录单元200设置位置记录,位置记录用于在每一项JSON数据全部解析并保存后,记录已经完整解析并存储的项数N,位置记录在每解析存储完一项JSON数据后更新一次,即将所记录的项数加1,这样就能实时对已经解析存储的JSON数据进行定位。\n[0042] 解析存储单元300,将位置记录的项数N与总项数进行比较,若位置记录的项数N小于总项数,则清除第N+1项JSON数据,并由第N+1项JSON数据开始重新解析并进行存储,直至位置记录的项数与总项数相同。\n[0043] 在记录已经完整解析并保存的JSON数据的项数N后,解析存储单元300通过将已经记录的项数N与总项数进行比较,就能够知道JSON数据是否全部解析并存储完。若位置记录的项数N小于总项数,则说明JSON数据没有全部解析并存储完,在解析和存储第N+1项JSON数据时发生异常,第N+1项JSON数据没有解析并存储完,由于已经对发生异常的位置进行了记录,解析存储单元300则由第N+1项JSON数据开始解析并进行存储,直至位置记录的项数与总项数相同,这样就大大提高了JSON数据解析存储的效率,大大降低了成本。\n[0044] 此外,由于JSON数据中都有对应的版本,不同版本的JSON数据版本号不同,对于不同版本号的JSON数据,需要全部进行重新解析和存储,故解析存储单元300在对当前JSON数据进行解析时,检测之前是否存在版本号,若不存在则说明是第一次解析,则将当前JSON数据重新进行解析并存储,若存在,则获取之前的版本号。\n[0045] 更进一步的,解析存储单元300获取当前JSON数据的版本号,并与之前的版本号进行比较,若不一致,则当前JSON数据全部进行解析并存储,进行更新;若一致,则将位置记录的项数N与总项数进行比较。\n[0046] 同时,由于JSON数据每一项内容的值可以是任意字符串,该字符串有可能表示指向另一JSON数据的路径,需要通过该路径解析另一JSON数据。在该实施例中,若位置记录的项数N小于总项数,JSON数据中含有指向另一JSON数据的路径时,解析存储单元300则清除第N+1项数据,并且清除第N+1项指向的另一JSON数据,重新从第N+1项数据开始解析并存储,同时重新解析并存储第N+1项指向的另一JSON数据。\n[0047] 该机顶盒JSON数据解析存储系统,获取JSON数据的总项数,并实时对JSON数据进行位置记录,将记录的位置与总项数进行对比,若记录的位置小于总项数,由第N+1项JSON数据开始重新解析并进行存储,通过定位发生异常的位置来对JSON数据进行解析和存储,不需要将所有JSON数据进行解析和存储,从而大大提高了JSON数据解析存储的效率,大大降低了成本。\n[0048] 本发明机顶盒JSON数据解析存储方法和系统,获取JSON数据的总项数,并实时对JSON数据进行位置记录,将记录的位置与总项数进行对比,若记录的位置小于总项数,由第N+1项JSON数据开始重新解析并进行存储,通过定位发生异常的位置来对JSON数据进行解析和存储,不需要将所有JSON数据进行解析和存储,从而大大提高了JSON数据解析存储的效率,大大降低了成本。\n[0049] 以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
法律信息
- 2021-11-02
未缴年费专利权终止
IPC(主分类): H04N 21/435
专利号: ZL 201510827847.1
申请日: 2015.11.24
授权公告日: 2018.09.04
- 2018-09-04
- 2016-03-09
实质审查的生效
IPC(主分类): H04N 21/435
专利申请号: 201510827847.1
申请日: 2015.11.24
- 2016-02-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2015-01-28
|
2014-11-14
| | |
2
| |
2008-03-12
|
2007-10-18
| | |
3
| |
2013-03-06
|
2012-07-18
| | |
4
| |
2014-09-03
|
2014-06-23
| | |
5
| | 暂无 |
2005-12-19
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |