数据展示方法和终端设备
技术领域
本发明实施例涉及通信技术,尤其涉及一种数据展示方法和终端设备。
背景技术
终端上的应用获取数据,根据应用的设置对获取到的数据进行展示。目前在iOS中,呈现不同样式的数据主要采用超文本标记语言(简称Html)相关技术。使用Html相关技术呈现数据的主要流程是,首先在内容管理***(Continuous Mind Storm,简称CMS)中制作Html,然后通过发布***将Html发布出来,之后终端获取Html,并在终端上采用Web组件展示Html。
通过上述方式进行数据呈现时,可以利用Html相关的技术基础,比如:布局,渲染等,从而降低了终端呈现复杂样式数据的难度。但是这种方式有一个重要缺点:数据的呈现效果,在终端获取Html前就确定了,即内容管理***在制作Html时,对于不同数据已经制作了唯一的数据呈现效果,终端在获取Html后,只能为用户呈现单一的数据呈现效果,从而使得使用上述方式进行数据呈现时呈现效果单一,不能满足用户对于不同呈现效果的需求。
发明内容
本发明实施例提供一种数据展示方法和终端设备。
第一方面,本发明实施例提供一种数据展示方法,包括:
终端设备分别获取展示模板和内容信息,所述内容信息包括待展示的数据,以及与所述数据对应的模板键;
所述终端设备根据存储在本地的模板规则,对所述展示模板进行解析获得与所述展示模板对应的多个模板键,并根据所述模板键从所述内容信息中获取对应的待展示的数据;
所述终端设备根据所述展示模板,展示对应的数据。
结合第一方面,在第一方面的第一种可能实现的方式中,所述模板规则包括以下任意一个规则或其组合:
输出(expression对应的值):获取expression模板键对应的值,然后输出结果字符串,其中expression为一模板键;或
如果expression为真,则输出true_body,否则,输出false_body,结束:根据expression模板键对应的值的真与假,获取字符串进行输出,其中true_body和false_body为字符串;或
循环获取objectArray中的元素值,当所述元素值为非空,则输出for_body,否则,结束循环:迭代输出objectArray模板键对应的值,其中objectArray为一模板键,for_body为一元素值,所述objectArray模板键包含至少一个元素值for_body。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述展示模板包括模板值和模板键待解析值,所述模板键是对所述模板键待解析值进行解析获得的;
相应地,所述终端设备根据所述展示模板,展示对应的数据包括:
对于各所述模板键所对应的数据,按照对应的所述模板键待解析值在所述展示模板的位置进行展示;
对于所述模板值,在所述展示模板的位置直接进行展示。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述终端设备分别获取展示模板和内容信息包括:
所述终端设备分别从网络侧或本地缓存中获取展示模板和内容信息。
第二方面,本发明实施例提供一种终端设备,包括:
获取模块,用于分别获取展示模板和内容信息,所述内容信息包括待展示的数据,以及与所述数据对应的模板键;
处理模块,用于根据存储在本地的模板规则,对所述展示模板进行解析获得与所述展示模板对应的多个模板键,并根据所述模板键从所述内容信息中获取对应的待展示数据;
展示模块,用于根据所述展示模板,展示对应的数据。
结合第二方面,在第二方面的第一种可能实现的方式中,所述模板规则包括以下任意一个规则或其组合:
输出(expression对应的值):获取expression模板键对应的值,然后输出结果字符串,其中expression为一模板键;或
如果expression为真,则输出true_body,否则,输出false_body,结束:根据expression模板键对应的值的真与假,获取字符串进行输出,其中true_body和false_body为字符串;或
循环获取objectArray中的元素值,当所述元素值为非空,则输出for_body,否则,结束循环:迭代输出objectArray模板键对应的值,其中objectArray为一模板键,for_body为一元素值,所述objectArray模板键包含至少一个元素值for_body。
结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述展示模板包括模板值和模板键待解析值,所述模板键是对所述模板键待解析值进行解析获得的;
相应地,所述展示模块具体用于:
对于各所述模板键所对应的数据,按照对应的所述模板键待解析值在所述展示模板的位置进行展示;
对于所述模板值,在所述展示模板的位置直接进行展示。
结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述获取模块具体用于:分别从网络侧或本地缓存中获取展示模板和内容信息。
本发明实施例数据展示方法和终端设备,通过分别获取展示模板和内容信息,当终端设备获取不同的内容信息,其内容信息中的待展示的数据不同时,终端设备根据存储在本地的模板规则,对获取到的展示模板进行解析获得与该展示模板对应的多个模板键,并根据该模板键从内容信息中获取对应的不同的待展示数据,根据展示模板展示对应的数据,即终端设备通过展示模板展示待展示数据过程中,其展示模板与待展示数据相互关联,由于待展示的数据不同,所以最终终端设备通过展示模板展示出的效果不同,从而使得终端设备在获取不同内容信息时,终端设备可以根据内容信息展示不同的呈现效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据展示方法实施例一的流程图;
图2为本发明数据展示方法实施例二的流程图;
图3为本发明终端设备实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所涉及的数据展示方法可以是iOS***中应用的数据展示方法,也可以是Android***或者其他操作***中应用的数据展示方法。该应用可以是任意类型的应用软件,例如网购、社交、生活等应用软件。
图1为本发明数据展示方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
步骤101、终端设备分别获取展示模板和内容信息。
其中,所述内容信息包括待展示的数据和与数据对应的模板键。
不同的内容信息对应的待展示的数据不同。
步骤102、所述终端设备根据存储在本地的模板规则,对所述展示模板进行解析获得与所述展示模板对应的多个模板键,并根据所述模板键从所述内容信息中获取对应的待展示的数据。
步骤103、所述终端设备根据所述展示模板,展示对应的数据。
在步骤102中,终端设备根据存储在本地的模板规则,对展示模板进行解析获得与展示模板对应的多个模板键,其中该模板规则具体可以包括但不限于以下任意一个或其组合:
(1)输出(expression对应的值):获取expression模板键对应的值,然后输出结果字符串,其中expression为一模板键;
(2)如果expression为真,则输出true_body,否则,输出false_body,结束:根据expression模板键对应的值的真与假,获取字符串进行输出,其中true_body和false_body为字符串;
具体地,若expression模板键对应的值为真,则获取字符串为true_body,并进行输出;若expression模板键对应的值为假,则获取字符串为false_body,并进行输出。
(3)循环获取objectArray中的元素值,当所述元素值为非空,则输出for_body,否则,结束循环:迭代输出objectArray模板键对应的值,其中objectArray为一模板键,for_body为一元素值,所述objectArray模板键包含至少一个元素值for_body。
进一步地,上述步骤中的展示模板可以包括模板值和模板键待解析值,所述模板键是对所述模板键待解析值进行解析获得的,其中,具体是通过使用模板规则对模板键待解析值进行解析获得的,相应地,步骤103可以具体为:对于各所述模板键所对应的数据,按照对应的所述模板键待解析值在所述展示模板的位置进行展示;对于所述模板值,在所述展示模板的位置直接进行展示。
终端设备分别获取展示模板和内容信息时,可以从本地缓存中获取,也可以从网络侧获取,具体地,终端设备可以根据展示模板和内容信息的统一资源定位符(UniformResource Locator,简称URL)从本地存储获取,当本地存储中没有该资源信息时,可以根据其对应的URL构造一个网络请求,从网络侧获取。
本实施例,终端设备通过分别获取展示模板和内容信息,该内容信息包括待展示的数据和与该数据对应的模板键,终端设备根据存储在本地的模板规则,对展示模板进行解析获得与展示模板对应的多个模板键,并根据模板键从内容信息中获取对应的待展示的数据,终端设备根据展示模板展示对应的数据。当终端设备获取不同的内容信息,其内容信息中的待展示的数据不同时,终端设备根据存储在本地的模板规则,对获取到的展示模板进行解析获得与该展示模板对应的多个模板键,并根据该模板键从内容信息中获取对应的不同的待展示数据,根据展示模板展示对应的数据,即终端设备通过展示模板展示待展示数据过程中,其展示模板与待展示数据相互关联,由于待展示的数据不同,所以最终终端设备通过展示模板展示出的效果不同,从而使得终端设备在获取不同内容信息时,终端设备可以根据内容信息展示不同的呈现效果。
使用上述实施例的方法,当展示模板相同时,由于不同的内容信息中,不同的待展示数据,而展示模板与待展示数据相互关联,使得终端设备最终呈现的效果不同,不同的内容信息通过本发明上述实施例的方法最终可以呈现不同的呈现效果,其中,不同的内容信息具体指待展示数据不同,待展示数据和展示模板共同决定终端设备最终的显示效果。而现有技术的使用Html相关技术进行待展示数据的呈现时,由于其数据的呈现效果与数据本身无关,所以即使待展示数据不同其最终呈现的效果也是相同的,显示效果较为单一固定。
下面采用一个具体的实施例,对图1所示方法实施例的技术方案进行详细说明。图2为本发明数据展示方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
S301、终端设备将内容信息的URL作为参数以获取内容信息。
S302、终端设备首先根据内容信息的URL判断是否有对应的缓存,若有则执行S303,若否则执行S304。
S303、终端设备根据内容信息的URL从缓存中获取对应的内容信息。
S304、终端设备根据内容信息的URL构造一个网络请求,并发出网络请求,以从网络侧获取内容信息。
S305、终端设备将获取到的内容信息存储到“键值对”容器中。
具体地,将获取到的内容信息以待展示的数据和与该数据对应的模板键的形式存储于终端设备中,其中,待展示的数据是内容信息中需要终端设备展示的信息,与待展示的数据对应的模板键是用于获取待展示数据的标识信息。
S306、终端设备将展示模板的URL作为参数以获取展示模板。
S307、终端设备首先根据展示模板的URL判断是否有对应的缓存,若有则执行S308,若否则执行S309。
S308、终端设备根据展示模板的URL从缓存中获取对应的展示模板。
S309、终端设备根据展示模板的URL构造一个网络请求,并发出网络请求,以从网络侧获取展示模板。
S310、终端设备将获取到的展示模板,将展示模板保存于终端设备的本地目录中,并进行解压缩。
S311、终端设备加载展示模板到内存中,将展示模板和内容信息进行合并。
具体地,终端设备根据存储在本地的模板规则,对展示模板进行解析获得与展示模板对应的多个模板键,并根据模板键从内容信息中获取对应的待展示数据。其中,模板规则可以采用如图1所示实施例中的模板规则。
解析展示模板过程中,由于展示模板包括模板值和模板键待解析值,通过根据模板规则解析模板键待解析值获得展示模板的多个模板键。解析后的展示模板包含模板值和模板键,终端设备根据解析获得的模板键从内容信息中获取对应的待展示数据。
S312、终端设备根据展示模板生成结果字符串,存到本地路径的文件中,并通知界面显示,以展示对应数据。
具体地,终端设备经过解析展示模板获取模板值和模板键,在生成结果字符串过程中,按照各模板值和模板键在解析前的展示模板中的位置依次生成结果字符串,其中,对于各模板值,终端设备根据其在展示模板中的位置直接生成结果字符串,对于各模板键,根据各模板键从内容信息中获取各模板键所对应的数据,并按照模板键对应的解析前的模板键待解析值在展示模板中的位置生成结果字符串。
本实施例,终端设备分别获取展示模板和内容信息后,将展示模板加载到内存中,对展示模板和内容信息进行合并,终端设备根据展示模板生成结果字符串,存到本地路径的文件中,并通知界面显示,以展示对应数据,具体合并展示过程为,内容信息包括待展示的数据和与该数据对应的模板键,终端设备根据存储在本地的模板规则,对展示模板进行解析,经过解析展示模板获取模板值和模板键,在生成结果字符串过程中,按照各模板值和模板键在解析前的展示模板中的位置依次生成结果字符串,其中,对于各模板值,终端设备根据其在展示模板中的位置直接生成结果字符串,对于各模板键,根据各模板键从内容信息中获取各模板键所对应的数据,并按照模板键对应的解析前的模板键待解析值在展示模板中的位置生成结果字符串。当终端设备获取不同的内容信息,其内容信息中的待展示的数据不同时,终端设备根据存储在本地的模板规则,对获取到的展示模板进行解析获得与该展示模板对应的多个模板键,并根据该模板键从内容信息中获取对应的不同的待展示数据,其展示模板与待展示数据相互关联,由于待展示的数据不同,所以最终终端设备通过展示模板展示出的效果不同,从而使得终端设备在获取不同内容信息时,终端设备可以根据内容信息展示不同的呈现效果。
需要说明的是S301-S305与S306-S310的先后顺序没有具体限制,即上述实施例也可以先执行S306-S310,后执行301-S305。
为更好的理解本发明图2所示实施例,下面采用一个具体的实施例,对图2所示方法实施例的技术方案进行详细说明。
具体地,假设经过S301-S305后,终端设备获取到的存储于“键值对”容器中的内容信息具体为
hello:
message:“Hello”
name:“Sample”
person_name:“Test”
isMale:true
children:
“Test-01”
“Test-02”
其中,冒号前的字符串(如hello、message、person_name等)为内容信息中模板键,冒号后的的字符串(如Hello、Test、true等)为内容信息中的待展示数据。
假设经过S306-S310后,终端设备获取到的展示模板具体为:
输出(hello.message)
Hi输出(person_name),如果isMale为真,则输出you are male否则输出you arefemale结束。Your children are:循环获取children中的元素值child,当所述元素值child为非空,则输出child,否则结束循环。
终端设备在获取上述内容信息和展示模板后,执行S211和S212的具体实施过程进行如下说明,使用图1所示实施例的模板规则对展示模板进行解析,在解析展示模板过程中具体使用正则表达式法(Regular Expression,简称Regex)。
首先提取第一个满足模板规则的子串,此处是:输出(hello.message)。
输出(hello.message)之前的部分不含有需要转换的内容,则将这部分内容直接输出到结果中。接下来需要解析输出(hello.message)。首先使用Regex提取出“hello.message”,然后使用“.”作为分隔符,使用Regex将“hello.message”分割为“hello”与“message”。下面开始取数据,首先以“hello”作为模板键从内容信息中获取其对应的值,缓存获取到的值。然后使用“message”作为模板键,从内容信息中获取与其对应的值,结果为“Hello”。下面做结果输出,直接将“Hello”输出,拼接到结果中。到此完成了输出(hello.message)的解析,合成,输出。
下面从输出(hello.message)的结束部分开始,到模板结束的这个范围内,提取满足模板规则的子串,此时是:输出(person_name)。从输出(hello.message)结束到输出(person_name)开始的部分不含有需要进行转换的内容直接输出到结果中。下面开始解析输出(person_name),首先使用Regex解析出“person_name”。接下来迭代提取最长的子串(在Regex中判断最长子串的标准是中间没有空白字符),将提取的结果保存到一个临时数组中,数组中只有一个元素。对于“person_name”来说,最长子串就是其自身。然后在存储内容信息的键值对容器中查找“person_name”对应的值,获得“Test”,将“Test”输出到结果中。
接下来的主要流程与上面相同,重点说明表达式的解析。首先会解析出如果isMale为真,则输出you are male否则输出you are female结束,首先取出“isMale”的值,如果为真,则输出you are male,如果为假,则输出you are female。由于此处“isMale”为真,所以输出“you are male”。
而后继续解析会提取出,循环获取children中的元素值child,当所述元素值child为非空,则输出child,否则结束循环。解析后依次取出“children”作为模板键在内容信息中对应的值。
这个模板经过解析后为:
Hello
Hi Test,you are male。Your children are:Test-01Test-02。
上面只是使用简单的模板进行了原理说明,在实际应用中可以组合上面支持的模板规则,进行样式的控制与内容的显示。
图3为本发明终端设备实施例一的结构示意图,如图3所示,本实施例的装置可以包括:获取模块11、处理模块12和展示模块13,其中,获取模块11用于分别获取展示模板和内容信息,所述内容信息包括待展示的数据,以及与所述数据对应的模板键,处理模块12用于根据存储在本地的模板规则,对所述展示模板进行解析获得与所述展示模板对应的多个模板键,并根据所述模板键从所述内容信息中获取对应的待展示数据,展示模块13用于根据所述展示模板,展示对应的数据。
其中,所述模板规则具体可以包括但不限于以下任意一个或其组合:
输出(expression对应的值):获取expression模板键对应的值,然后输出结果字符串,其中expression为一模板键;或
如果expression为真,则输出true_body,否则,输出false_body,结束:根据expression模板键对应的值的真与假,获取字符串进行输出,其中true_body和false_body为字符串;或
循环获取objectArray中的元素值,当所述元素值为非空,则输出for_body,否则,结束循环:迭代输出objectArray模板键对应的值,其中objectArray为一模板键,for_body为一元素值,所述objectArray模板键包含至少一个元素值for_body。
进一步地,所述展示模板可以包括模板值和模板键待解析值,所述模板键是对所述模板键待解析值进行解析获得的;
相应地,所述展示模块13具体用于:对于各所述模板键所对应的数据,按照对应的所述模板键待解析值在所述展示模板的位置进行展示;对于所述模板值,在所述展示模板的位置直接进行展示。
所述获取模块11在获取展示模板和内容信息过程中,可以分别从网络侧或本地缓存中获取展示模板和内容信息。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。