[发明专利]一种基于CSV文件确定对象属性值的方法和装置在审
| 申请号: | 201410041343.2 | 申请日: | 2014-01-28 |
| 公开(公告)号: | CN103745010A | 公开(公告)日: | 2014-04-23 |
| 发明(设计)人: | 赵林虎;周宁;张国利;胡俏芝 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/44 |
| 代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 张玉波;宋志强 |
| 地址: | 100080 北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 csv 文件 确定 对象 属性 方法 装置 | ||
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于CSV文件确定对象属性值的方法和装置。
背景技术
在现代软件开发过程中,不同应用程序之间面临数据交互的问题。逗号分隔值(CSV)文件因其格式简单,操作方便,成为越来越多应用程序首选的数据交换格式。目前已有很多成熟的框架解析与处理CSV文件,这极大简化了程序员的开发成本,使其可以专注于处理CSV文件内容和业务逻辑的映射关系,即,专注于基于CSV文件确定对象的属性值。
目前,一般基于硬编码方式实现CSV文件与对象属性值的映射,具体地:
用于处理业务的应用程序(下文称为业务处理类)根据CSV文件构造实体类,例如构造一个JAVA对象作为实体类,该实体类一般包括多个属性、以及每个属性对应的属性信息设置方法,其中,在属性对应的属性信息设置方法中直接显示地指明了要将CSV文件的哪一列的数值设置为该属性的属性值,业务处理类通过解析CSV文件,将CSV文件的每一行记录按逗号分隔,得到该行记录中每一列的数值,调用所述实体类中的属性信息设置方法,将该属性信息设置方法对应属性的属性值设置为该属性信息设置方法中指明的CSV文件中相应列的数值。
例如,对于CSV文件student.csv,其文件格式为id,name,class,grade,school,sex,score1,score2。应用程序读取该CSV文件中的每行记录,并将每一行记录转换为Java对象Student.java,该Java对象Student.java包括id,name,class,grade,school,sex,score1和score2属性,并且,每个属性都有自己的属性信息设置方法。应用程序对读取到的每一行记录,按逗号分隔后,需要显示调用对应的属性信息设置方法,将CSV文件该行记录中各列的取值保存至所述Java对象的对应属性中。比如,对CSV文件的第一列数值,需要显示调用Student.setId(Integer id)方法设置id属性值,对于CSV文件的第二列数值,需要显示调用Student.setName(String name)方法设置name属性值;以此类推。
随着应用程序的演进,对于CSV文件,我们经常面临这样的问题:在原有列的基础上增加一新列,删除一个已有的列,修改某一列的数据类型(如将整形转为字符串类型)等等。面对上述变化,程序员需要仔细地将各列的取值映射到实体对象的相应属性中,比如,若新增加一列或删除一列,应用程序需要重新将不同列设置到不同属性上,因此,应用程序的代码几乎要全部更新,更新完成后还需要大量的验证工作以保障属性信息设置无误。如果面对的CSV文件列数较少,其维护成本相对较低;但对于字段数较多,且字段可能频繁变化的情况下,其维护成本及出错概率呈几何倍增长,且因人为疏忽造成错误的概率比较大,且某些错误可能很难发现,比如,错误地将score1,score2列设置到不相符的属性上。
发明内容
有鉴于此,本发明提供了一种基于CSV文件确定对象属性值的方法和装置,能够降低维护成本和出错概率。
一种基于CSV文件确定对象属性值的方法,该方法包括:
为对象中的属性设置注解信息,所述注解信息包括CSV文件中与该属性对应的列的序号信息;
解析所述CSV文件中的行记录,根据解析结果将所述行记录中各列元素的数值按照预设数据结构进行保存;
确定所述对象中设置有注解信息的属性,解析属性的注解信息得到与该属性对应的CSV文件中的列的序号信息,根据所述序号信息从所述数据结构中获取相应的元素,将该属性的值确定为该元素的值。
一种基于CSV文件确定对象属性值的装置,该装置包括注解模块、CSV文件解析模块、属性筛选模块和属性值设置模块;
所述注解模块,用于为对象中的属性设置注解信息,所述注解信息包括CSV文件中与该属性对应的列的序号信息;
所述CSV文件解析模块,用于解析所述CSV文件中的行记录,根据解析结果将所述行记录中各列元素的数值按照预设数据结构进行保存;
所述属性筛选模块,用于确定所述对象中设置有注解信息的属性;
所述属性值设置模块,用于解析属性的注解信息得到与该属性对应的CSV文件中的列的序号信息,根据所述序号信息从所述数据结构中获取相应的元素,将该属性的值确定为该元素的值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410041343.2/2.html,转载请声明来源钻瓜专利网。





