读取excel等文件根据注解自动装填为实体类
作者:互联网
问题:以前每次读取excel 都是根据第几列来装填实体类里面的属性。写起来很麻烦。还要判断。
思路:
1.因为每次读取excel 或者word表格 都能得到是第几列的数据,那么可以知道每列数据的index。
2.把每个列的index作为key,数据内容作为value变成一个属性值,
3.通过fastJson 的JSONObject 作为一个对象,JSONArray 作为这些对象的容器。
4.在实体类上用fastJSon 的注解@JSONFIELD(name="第几列") 0---nIndex 作为转换的依据。 注意这里最好额外写出一个实体类,用来专门作为接收的实体类。避免别的地方接收时转换的错误。
伪代码:
装填数据:
JSONArray array = new JSONArray();
while(iterator.hasNext()){
JSONObject ob = new JSONObject();
for(int i = 0 ; i < row.getcells();i++)
{
ob.put(String.valueOf(i),row.getCell(i).text().trim());
}
array.add(ob);
}
实体类:
class Student
{
@JSONField(name="0")
private String name;
@JSONField(name="1")
private String age;
@JSONField(name="2")
private String sex;
}
转换:
main{
JSONArray array = JSONUtils.covertJSON();
List<Student> list = JSON.parseArray(array.tostring(),Student.class);
}
至此一个大致的过程就出来了。emmm 想了一下这个应该是半自动装填模式。
如果需要全自动装填。可以使用反射获取实体类里面的属性,然后根据上到下的index来设置。这种方式需要设置安全性问题。
标签:实体类,String,装填,JSONArray,excel,name,array,读取 来源: https://www.cnblogs.com/sunshine99/p/14296579.html