一种模型文件的生成方法和装置制造方法及图纸

技术编号:27876625 阅读:17 留言:0更新日期:2021-03-31 00:53
本发明专利技术公开了一种模型文件的生成方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:调用入口函数,在调用所述入口函数时,传入输入参数;其中,所述输入参数包括目标数据和模型文件名称;解析所述目标数据,将解析出的对象按照对象类型存储到创建的类名文件和类对象文件;遍历所述类对象文件的元素,根据所述元素的数据类型以及所述类名文件,按照设定的文件格式生成与所述模型文件名称相对应的模型文件。该方法通过调用入口函数,传入包括目标数据和模型文件名称的输入参数,以根据传入参数自动生成模型文件,减少模型文件的创建时间、准确度高,同时提升开发效率。

【技术实现步骤摘要】
一种模型文件的生成方法和装置
本专利技术涉及计算机领域,尤其涉及一种模型文件的生成方法和装置。
技术介绍
在IOS应用程序(Application,APP)的开发联调过程中,如果服务端接口返回的数据是json(javascriptobjectnotation)数据,APP端需要按照json格式手动创建模型(Model)文件以及模型文件内的属性,然后再通过第三方框架,比如YYModel等来进行转换,以按照模型信息来展示数据。其中,json是一种轻量级的数据交换格式,YYModel是一个轻量级的json模型自动转换库。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:现有技术需要人工分析,并手动创建模型文件。在接口返回的json数据比较多的情况下,上述方式创建模型文件的效率低、准确度低,进而导致APP开发效率低。
技术实现思路
有鉴于此,本专利技术实施例提供一种模型文件的生成方法和装置,通过调用入口函数,传入包括目标数据和模型文件名称的输入参数,以根据传入参数自动生成模型文件,减少模型文件的创建时间、准确度高,同时提升开发效率。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种模型文件的生成方法。本专利技术实施例的一种模型文件的生成方法,包括:调用入口函数,在调用所述入口函数时,传入输入参数;其中,所述输入参数包括目标数据和模型文件名称;解析所述目标数据,将解析出的对象按照对象类型存储到创建的类名文件和类对象文件;遍历所述类对象文件的元素,根据所述元素的数据类型以及所述类名文件,按照设定的文件格式生成与所述模型文件名称相对应的模型文件。可选地,所述类对象文件包括类名属性和类别属性;所述将解析出的对象按照对象类型存储到创建的类名文件和类对象文件,包括:如果所述对象不是数组或者字典,则将初始化的临时字典作为所述类别属性添加到所述类对象文件;如果所述对象是数组,则去除所述数组中的非字典类型数据,把去除后的数据合并为第一新字典,遍历所述第一新字典中的键,根据键值类型将所述第一新字典存储到创建的类名文件和类对象文件;如果所述对象是字典,则遍历所述字典中的键,根据键值类型将所述字典存储到创建的类名文件和类对象文件。可选地,所述输入参数还包括:子模型后缀名;根据键值类型将所述字典存储到创建的类名文件和类对象文件,包括:如果键值类型为空或者字符串,则将所述键作为所述临时字典的键,所述临时字典的值对应为空或者所述字符串,将所述临时字典作为所述类别属性添加到所述类对象文件中;如果所述键值类型为字典,则将所述键与所述子模型后缀名进行拼接得到第一拼接字符串,遍历所述类名文件中是否存在所述第一拼接字符串,如果存在,则在所述第一拼接字符串中添加第一标识得到第一新拼接字符串,在遍历完成后,将所述第一拼接字符串或者所述第一新拼接字符串添加到所述类名文件;将所述键作为所述临时字典的键,所述临时字典的值为所述第一拼接字符串或者所述第一新拼接字符串,将所述临时字典作为所述类别属性添加到所述类对象文件中。可选地,所述输入参数还包括:子模型后缀名;根据键值类型将所述字典存储到创建的类名文件和类对象文件,包括:如果所述键值类型为数组,则去除所述数组中的非字典类型数据,把去除后的数据合并为第二新字典,如果所述第二新字典为空,则将所述键作为所述临时字典的键,所述临时字典的值为设定字符串;如果所述第二新字典不为空,则将所述键与所述子模型后缀名进行拼接得到第二拼接字符串,遍历所述类名文件中是否存在所述第二拼接字符串,如果存在,则在所述第二拼接字符串中添加第一标识得到第二新拼接字符串,在遍历完成后,将所述第二拼接字符串或者所述第二新拼接字符串添加到所述类名文件;将所述键作为所述临时字典的键,所述临时字典的值为所述第二拼接字符串或者所述第二新拼接字符串与所述设定字符串的拼接,将所述临时字典作为所述类别属性添加到所述类对象文件中。可选地,所述输入参数还包括:子模型后缀名;根据键值类型将所述字典存储到创建的类名文件和类对象文件,包括:如果所述键值类型为其他类型,获取类描述字符串,如果所述类描述字符串包含NSCFBoolean字符串,则将所述键作为所述临时字典的键,所述临时字典的值为布尔字符串;其中,所述其他类型为除空、字符串、字典和数组之外的类型;如果所述类描述字符串包含NSCFNumber字符串,且为long类型,则将所述键作为所述临时字典的键,所述临时字典的值为整数字符串;如果所述类描述字符串包含NSCFNumber字符串,且为double类型,则将所述键作为所述临时字典的键,所述临时字典的值为双精度字符串。可选地,所述模型文件包括模型声明文件;按照设定的文件格式生成与所述模型文件名称相对应的模型声明文件,包括:获取所述类对象文件的当前元素的类别属性以及所述类别属性的键,声明第一临时字符串;遍历所述类别属性的键以及所述键的元素,将所述键的当前元素与设定匹配条件进行匹配,以根据匹配结果为所述第一临时字符串赋值;拼接类定义字符串和赋值后的第一临时字符串,将得到的第三拼接字符串写入文件,以生成模型声明文件。可选地,所述匹配条件包括下列任意一个或者多个:所述键的当前元素对应值的类型是否为空、字符串、布尔、双精度或者整数,所述键的当前元素是否以数组字符串开头,以及所述类名文件是否包含所述当前元素。可选地,所述模型文件包括模型实现文件;按照设定的文件格式生成与所述模型文件名称相对应的所述模型实现文件,包括:根据所述类对象文件的当前元素的类型,设置第二临时字符串的取值;初始化第三临时字符串,遍历所述类对象文件中类别属性中的键,在当前键以数组开头,且截取所述当前键的数组后的剩余字符串不为0的情况下,为所述第三临时字符串赋值;在遍历完成后,根据所述第三临时字符串的长度,结合所述第二临时字符串更新所述第三临时字符串;拼接类实现字符串和所述第三临时字符串,将得到的第四拼接字符串写入文件,以生成模型实现文件。可选地,所述输入参数还包括:模型文件存储地址;所述方法还包括:输出所述模型文件到指定存储位置;其中,所述指定存储位置为所述模型文件存储地址。可选地,所述方法还包括:如果所述键值类型为字典,判断当前字典的父字典中是否存在重复的键;如果存在重复的键,则在所述父字典的对应键中添加第二标识,将添加所述第二标识后的键作为所述当前字典的对应键。为实现上述目的,根据本专利技术实施例的另一方面,提供了一种模型文件的生成装置。本专利技术实施例的一种模型文件的生成装置,包括:函数调用模块,用于调用入口函数,在调用所述入口函数时,传入输入参数;其中,所述输入参数包括目标数据和模型文件名称;解析存储模块,用于解析所述目标数据,将解析出的对象按照对象类型存储到创建的类名文件和类对象文件;遍历生成模块,用于遍历所述类对象文件的元素,根据所述元素的数据类型以及所述类名文件,按照设定的文件格式生成与所述模型文件名称相对应的模型文件。可选地,所述类对象文件包括类名属性和类别属性;所述解析存储模块,还用于:如果所述对象不是数本文档来自技高网...

【技术保护点】
1.一种模型文件的生成方法,其特征在于,包括:/n调用入口函数,在调用所述入口函数时,传入输入参数;其中,所述输入参数包括目标数据和模型文件名称;/n解析所述目标数据,将解析出的对象按照对象类型存储到创建的类名文件和类对象文件;/n遍历所述类对象文件的元素,根据所述元素的数据类型以及所述类名文件,按照设定的文件格式生成与所述模型文件名称相对应的模型文件。/n

【技术特征摘要】
1.一种模型文件的生成方法,其特征在于,包括:
调用入口函数,在调用所述入口函数时,传入输入参数;其中,所述输入参数包括目标数据和模型文件名称;
解析所述目标数据,将解析出的对象按照对象类型存储到创建的类名文件和类对象文件;
遍历所述类对象文件的元素,根据所述元素的数据类型以及所述类名文件,按照设定的文件格式生成与所述模型文件名称相对应的模型文件。


2.根据权利要求1所述的方法,其特征在于,所述类对象文件包括类名属性和类别属性;
所述将解析出的对象按照对象类型存储到创建的类名文件和类对象文件,包括:
如果所述对象不是数组或者字典,则将初始化的临时字典作为所述类别属性添加到所述类对象文件;
如果所述对象是数组,则去除所述数组中的非字典类型数据,把去除后的数据合并为第一新字典,遍历所述第一新字典中的键,根据键值类型将所述第一新字典存储到创建的类名文件和类对象文件;
如果所述对象是字典,则遍历所述字典中的键,根据键值类型将所述字典存储到创建的类名文件和类对象文件。


3.根据权利要求2所述的方法,其特征在于,所述输入参数还包括:子模型后缀名;根据键值类型将所述字典存储到创建的类名文件和类对象文件,包括:
如果键值类型为空或者字符串,则将所述键作为所述临时字典的键,所述临时字典的值对应为空或者所述字符串,将所述临时字典作为所述类别属性添加到所述类对象文件中;
如果所述键值类型为字典,则将所述键与所述子模型后缀名进行拼接得到第一拼接字符串,遍历所述类名文件中是否存在所述第一拼接字符串,如果存在,则在所述第一拼接字符串中添加第一标识得到第一新拼接字符串,在遍历完成后,将所述第一拼接字符串或者所述第一新拼接字符串添加到所述类名文件;
将所述键作为所述临时字典的键,所述临时字典的值为所述第一拼接字符串或者所述第一新拼接字符串,将所述临时字典作为所述类别属性添加到所述类对象文件中。


4.根据权利要求2所述的方法,其特征在于,所述输入参数还包括:子模型后缀名;根据键值类型将所述字典存储到创建的类名文件和类对象文件,包括:
如果所述键值类型为数组,则去除所述数组中的非字典类型数据,把去除后的数据合并为第二新字典,如果所述第二新字典为空,则将所述键作为所述临时字典的键,所述临时字典的值为设定字符串;
如果所述第二新字典不为空,则将所述键与所述子模型后缀名进行拼接得到第二拼接字符串,遍历所述类名文件中是否存在所述第二拼接字符串,如果存在,则在所述第二拼接字符串中添加第一标识得到第二新拼接字符串,在遍历完成后,将所述第二拼接字符串或者所述第二新拼接字符串添加到所述类名文件;
将所述键作为所述临时字典的键,所述临时字典的值为所述第二拼接字符串或者所述第二新拼接字符串与所述设定字符串的拼接,将所述临时字典作为所述类别属性添加到所述类对象文件中。


5.根据权利要求2所述的方法,其特征在于,所述输入参数还包括:子模型后缀名;根据键值类型将所述字典存储到创建的类名文件和类对象文件,包括:
如果所述键值类型为其他类型,获取类描述字符串,如果所述类描述字符串包含NSCFBoolean字符串,则将所述键作为所述临时字典的键,所述临时字典的值为布尔字符串;其中,所述其他类型为除空、字符串、字典和数组之外的类型;
如果所述类描述字符串包含NSCFNumb...

【专利技术属性】
技术研发人员:徐记军于学良尹华东
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1