一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种Realm数据库文件快速解析数据视图化展示的方法与流程

2022-04-06 17:51:24 来源:中国专利 TAG:

一种realm数据库文件快速解析数据视图化展示的方法
技术领域
1.本发明涉及数据存储及数据解析技术领域,具体为一种realm数据库文件快速解析数据视图化展示的方法。


背景技术:

2.realm是一个mvcc(多版本并发控制)数据库,一款支持运行在手机、平板和可穿戴设备上的嵌入式数据库,目标是取代sqlite。针对目前realm数据库文件适用于手机应用数据存储,应用解析人员在windows平台无法用c 直接解析的不足点进行研究分析,整理出一种通用的解析方法。目前应用解析中遇到的realm数据格式文件如下:
3.1、android平台justalk本地realm数据库文件,存储账号、好友、群组及聊天信息;
4.2、ios平台justalk本地realm数据库文件,存储账号、好友、群组及聊天信息;
5.3、android平台事密达本地realm数据库文件,存储聊天好友及群组、聊天信息;
6.4、android平台element本地realm数据库文件,数据库加密存储聊天信息。
7.随着android、ios设备移动应用的普及,部分移动应用开始采用realm作为本地数据库进行数据存储,对于手机数据在windows平台进行解析和数据展示显得尤为重要,因此研究一种能够快速解析realm数据库文件的方法,使得手机应用数据在windows平台视图化展示显得特别重要。


技术实现要素:

8.为了解决上述技术问题,本发明提供了如下的技术方案:
9.本发明一种realm数据库文件快速解析数据视图化展示的方法,包括如下步骤:
10.s1、配置realm工程环境,工程使用vs2019打开,加载官方提供的realmcore工程,工程位于build.release\realmcore.sln,在build.release目录下找到其中的realm2json项目进行编译,生成realm2json.exe可执行文件;
11.s2、生成json文件进行转储,打开vs2019,新建项目parserealm,该项目实现调用realm2json.exe可执行程序将realm数据库文件进行存储;
12.s3、封装cjson库,根据cjson库中提供的json格式操作接口进行json数据解析代码封装;
13.s4、json文件解析,转储的json文件根节点下的第一层节点名称为class_数据库表名,表数据为json_array类型,通过对转储json文件解析可实现对realm数据库文件的快速解析,从而方便数据的视图化展示。
14.作为本发明的一种优选技术方案,所述s1中的realm2json项目位于build.release\src\realm\exec\realm2json.vcxproj。
15.作为本发明的一种优选技术方案,所述s2中的parserealm项目中包含cjson库头文件及静态库,封装实现cjsonoperate类。
16.作为本发明的一种优选技术方案,所述s2可在dos窗口调用命令进行测试:
realm2json.exe input_file》output_file,样例如下:realm2json.exe d:\35053990.realm》d:\35053990.json。
17.作为本发明的一种优选技术方案,所述s3中的操作接口如下:
18.parsejson和parsefile解析json的buffer和json文件;
19.findfirstnodebykey得到以传入的pjsonrootnode节点做为根节点,key值相同的json节点;
20.getobjectnode得到传入的json_object类型的pjsonnode节点的子节点的key值和对应数据的json节点;
21.getarraynodes得到传入的json_array类型的pjsonnode节点的子节点的json节点;
22.std::string getnodevalue得到传入pjsonnode节点的节点类型和string类型的数据。
23.本发明的有益效果是:
24.该种realm数据库文件快速解析数据视图化展示的方法,通过利用官方提供的realm底层核心代码、cjson库提供的底层接口进行二次开发,实现可以根据json属性获取对应数据库表信息,使realm数据库文件在windows平台快速解析从无到有,操作更为简单易用,解析出的数据可以进行视图化展示。
附图说明
25.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
26.图1是本发明一种realm数据库文件快速解析数据视图化展示的方法的操作流程示意图;
27.图2是本发明一种realm数据库文件快速解析数据视图化展示的方法的json转储样例图。
具体实施方式
28.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
29.实施例:如图1所示,本发明一种realm数据库文件快速解析数据视图化展示的方法,包括如下步骤:
30.s1、配置realm工程环境
31.工程使用vs2019打开,加载官方提供的realmcore工程,工程位于build.release\realmcore.sln,在build.release目录下找到其中的realm2json项目进行编译,生成realm2json.exe可执行文件。注:项目位于build.release\src\realm\exec\realm2json.vcxproj;官方提示realm数据库只能在windows 8.1及以上系统中进行解析,因此建议使用win10系统。
32.s2、生成json文件进行转储
33.打开vs2019,新建项目parserealm,该项目实现调用realm2json.exe可执行程序
将realm数据库文件进行存储。也可在dos窗口调用命令进行测试:realm2json.exe input_file》output_file,样例如下:realm2json.exe d:\35053990.realm》d:\35053990.json。json转储成功后数据结构如下表所示,样例如图2所示。
[0034][0035]
s3、封装cjson库
[0036]
parserealm项目中包含cjson库头文件(cjson.h)及静态库(json.lib),封装实现cjsonoperate类。
[0037]
parsejson(std::string strjsonbuf)和parsefile(std::string strfilepath)解析json的buffer和json文件。
[0038]
findfirstnodebykey(jsonnode*pjsonrootnode,std::string strkey)得到以传入的pjsonrootnode节点做为根节点,key值相同的json节点。
[0039]
getobjectnodes(jsonnode*pjsonnode,jsonnodesmap&nodeslist)得到传入的json_array类型的pjsonnode节点的子节点(第一层)的json节点。
[0040]
std::string getnodevalue(jsonnode*pjsonnode,json_type&jsontype)得到传入pjsonnode节点的节点类型和string类型的数据。
[0041]
s4、json文件解析
[0042]
转储的json文件根节点下的第一层节点名称为class_数据库表名,表数据为json_array类型,通过对转储json文件解析可实现对realm数据库文件的快速解析,从而方便数据的视图化展示。例如要解析图2中的聊天信息,解析函数片段如下所示。
[0043][0044][0045]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精
神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献