一种基于数据路由的数据绑定方法

文档序号:26101440发布日期:2021-07-30 18:12阅读:67来源:国知局
一种基于数据路由的数据绑定方法

本发明属于移动端开发技术领域,尤其涉及一种基于数据路由的数据绑定方法。



背景技术:

目前在移动端有很多ui样式相同的组件,但是其对应的数据结构不同,通常的做法是规定服务端透传数据的样式,或者重新开发一套组件。但是采用上述两种方式时,对于数据问题没有很好的主动发现机制,无法在线上对数据结构引发的异常进行修复。

目前的开发方式主要有两种,增加移动端的开发量、增加服务端的开发量,而且上述两种方式都不够灵活。对于数据异常,只能依靠抓包和开发比对验证,大大增加了发现问题的工作量,而且对于线上数据异常,只能通过发布新版本或者由服务端重新发布,修复周期太长。



技术实现要素:

针对现有技术中存在不足,本发明提供了一种基于数据路由的数据绑定方法,解决了同一个ui控件适配不同的数据结构的问题,避免了因为数据结构不同而导致的多次开发组件的情况,提高了组件的复用性,降低了重复工作量,在开发阶段能够主动发现数据问题,并且能够实现线上解决数据结构异常问题。

本发明是通过以下技术手段实现上述技术目的的。

一种基于数据路由的数据绑定方法,包括如下步骤:

步骤1:系统底层实现一个数据路由协议,上层业务中的ui控件实现该数据路由协议中的方案,实现方法是返回一个nsdictionary类型的数据路由表;

步骤2:根据ui控件字段以及ui控件业务数据写数据路由表,在数据路由表中通过key-value的形式设置每个ui控件字段对应的路径表,其中,key为ui控件中获取数据的字段名,value是一个数组,数组中存放对应不同ui控件业务数据结构的路径节点;所述数据路由表包括本地数据路由表和线上下发数据路由表;

步骤3:根据开发ui控件时的业务需求确定每个ui控件字段是否为必传字段;

步骤4:底层api获取对应字段数据,首先判断所在控件是否实现路由协议,没有实现路由协议则进入步骤4.1,实现路由协议则进入步骤4.2;

步骤4.1:利用系统基础功能获取当前组件数据中字段为key的数据,获取到数据时,获取该数据后结束,没有获取到数据时,获取过程结束;

步骤4.2:通过当前空间类名查找是否有线上下发数据路由表,有则获取线上下发数据路由表,没有则获取本地数据路由表;

步骤4.3:控件获取对应的数据路由表,在数据路由表中查找当前字段key的路由数组;

步骤4.4:获取路由数组中未遍历的第一个路由;根据该路由的路由字符串和路由节点标识生成一个路由节点的数组,遍历该路由节点数组中的每一个节点;

步骤4.5:遍历完成后判断所获数据是否为空,若所获数据为空则进一步判断是否是路由数组的组后一个路由,若所获数据不为空则获取该数据后结束;遍历没有完成则获取业务数据在对应节点的数据,然后继续返回判断是否遍历完成;

步骤4.6:当步骤4.5中判断出是路由数组的组后一个路由时,进一步判断当前路由是否为可空标识,以实现主动预警,整个数据获取过程结束;

当步骤4.5中判断出不是路由数组的组后一个路由时,返回步骤4.4。

进一步地,所述步骤2中的本地数据路由表,是由开发人员在开发ui控件时根据不同数据结构,在代码中添加不同的数据路由获得的。

进一步地,所述步骤2中的线上下发数据路由表,是通过接口获取并缓存在本地的线上配置对应ui控件的类对应的数据路由表;配置过程为:在管理后台添加一个json数据,key是ui控件的类名,value就是路由表的内容,下发到客户端,客户端接受到数据后,存在本地,当执行该控件的数据路由方法时,先判断该类是否存在下发下来的路由表数据。

进一步地,所述步骤3中,每个ui控件字段默认设置为必传不可空字段,每个ui控件字段对应的key必须透传,否则在debug模式下触发alert,进行主动数据报警。

进一步地,所述步骤4.6中,当前路由为可空标识时获取过程结束,当前路由不为可空标识时,在debug模式下触发alert,进行主动预警,整个数据获取过程结束。

进一步地,所述步骤4.4中,通过节点符号来识别每个路由对应的层级,然后一层一层解析出业务数据的对应层次的数据,一直到最后一个节点,以获取到最终数据。

本发明具有如下有益效果:

本发明所提供的基于数据路由的数据绑定方法,结合jsonpath实现思路,为ios中数据获取提供了点语法功能,提升开发效率;针对必传字段异常能够在开发阶段实时提示预警,帮助开发者在开发阶段尽可能发现数据异常,提供主动数据预警功能;针对不同的数据结构提供数据路由表,并与业务模块组件绑定,以实现针对不同数据结构的数据获取功能,能够有效增加组件的可复用性,适应多种不同数据结构;本发明还能够通过下发数据路由表来解决因路径出错引发的单端数据异常问题。

本发明解决了移动展示组件针对多种数据结构的兼容问题以及线上数据异常的下发修复问题,对于当前移动端组件化方案丰富组件池有一定的帮助;

本发明通过先实现jsonpath功能,然后通过固定key映射数据路由表,依次按照数据路由表的路由进行数据获取,并能够实现业务数据主动预警功能,来提升单一视图在不同页面中的复用率,并支持线上功能,这种方案为业内首创,相应的数据路由模式还可以帮助检测可能的侵权问题。

附图说明

图1为本发明所述步骤4流程图。

具体实施方式

下面结合附图以及具体实施例对本发明作进一步的说明,但本发明的保护范围并不限于此。

本发明所述的基于数据路由的数据绑定方法适用于包括ios、安卓、windows等系统,本实施例优选地以在ios中基于数据路由的数据绑定方法为例进行具体说明。

本发明所述基于数据路由的数据绑定方法,具体步骤如下:

步骤1:ios系统底层实现一个数据路由协议,上层业务中的用户界面(userinterface,ui)控件需要实现该数据路由协议中的方案,实现方法是返回一个不可变字典(nsdictionary)类型的数据路由表。

步骤2:根据ui控件字段以及ui控件业务数据写数据路由表,在数据路由表中通过键-值(key-value)的形式设置每个ui控件字段对应的路径表,其中,key为ui控件中获取数据的字段名,value是一个数组,数组中存放对应不同ui控件业务数据结构的路径节点。

所述数据路由表通过两种方式获得:开发人员在开发ui控件时根据不同数据结构,在代

码中添加不同的数据路由,进而获得的数据路由表为本地数据路由表;线上配置对应ui控件的类对应的数据路由表,通过接口获取并缓存在本地,作为线上下发数据路由表;线上下发数据路由表的具体配置过程为:在管理后台添加一个json数据,key是ui控件的类名,value就是路由表的内容,下发到客户端,客户端接受到数据后,会存在本地,当执行该控件的数据路由方法时会先判断该类是否存在下发下来的路由表数据。

在数据查找时,优先使用本地数据路由表进行数据查找,以此来修复因线上数据结构异常而导致的问题。

步骤3:根据开发ui控件时的业务需求确定每个ui控件字段是否为必传字段;本实施例中优选为将每个ui控件字段默认设置为必传不可空字段,则每个ui控件字段对应的key必须要透传,否则在程序除错(debug)模式下会触发alert,进行主动数据报警。

步骤4:如图1所示,底层api获取对应字段数据,首先判断所在控件是否实现路由协议,没有实现路由协议则进入步骤4.1,实现路由协议则进入步骤4.2;

步骤4.1:利用ios系统基础功能获取当前组件数据中字段为key的数据,判断是否获取到数据,判断结果为获取到数据时,获取该数据后结束,判断结果为没有获取到数据时,获取过程结束;

步骤4.2:通过当前空间类名查找是否有线上下发数据路由表,有则获取线上下发数据路由表,没有则获取本地数据路由表;

步骤4.3:控件获取对应的数据路由表,在数据路由表中查找当前字段key的路由数组;

步骤4.4:获取路由数组中未遍历的第一个路由;根据该路由的路由字符串和路由节点标识生成一个路由节点的数组,遍历该路由节点数组中的每一个节点;每个路由均是带有节点符号“.”的字符串形式,本发明提供了点语法功能,通过一个个节点符号来识别对应的层级,然后一层一层解析出业务数据的对应层次的数据,一直到最后一个节点,这样即可获取到最终数据;

步骤4.5:遍历完成后判断所获数据是否为空,若所获数据为空则进一步判断是否是路由数组的组后一个路由,若所获数据不为空则获取该数据后结束;遍历没有完成则获取业务数据在对应节点的数据,然后继续返回判断是否遍历完成;

步骤4.6:当步骤4.5中判断出是路由数组的组后一个路由时,进一步判断当前路由是否为可空标识,当前路由为可空标识时获取过程结束,当前路由不为可空标识时,在debug模式下触发alert,进行主动预警,整个数据获取过程结束;

当步骤4.5中判断出不是路由数组的组后一个路由时,返回步骤4.4。

所述实施例为本发明的优选的实施方式,但本发明并不限于上述实施方式,在不背离本发明的实质内容的情况下,本领域技术人员能够做出的任何显而易见的改进、替换或变型均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1