大佬教程收集整理的这篇文章主要介绍了如何将DBUtil中使用BeanListHandler中转返回的List存入一个JSONArray中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
List<Grade> list = (List<Grade>) runner.query(sql.to@R_197_10495@ng(),new BeanListHandler(Grade.class),params);
这里的runner.query()方法返回的就是List,这是如果我们想把这个List中的数据封装到JSONArray中,分别需要:表中的属性名,和属性名对应的属性值。
为了让这个封装方法具有通用性,这里引入泛型与反射,构成静态方法,充作工具类使用。
/** * * @param list 外面传进来的list集合 * @param clazz 为了获取属性名,传进来一个class * @return 返回JSONArray */ public static <T> JSONArray formatRsToJsonArray(List<T> list,Class<T> clazz ) { try { //首先创建一个JSONArray对象 JSONArray jsonArray = new JSONArray(); //获取List迭代器 Iterator it = list.iterator(); while(it.hasNext()){ //新建一个JSONOBject //先将获取到的一条记录存入JSONObject中 JSONObject o = new JSONObject(); Field [] fs = clazz.getDeclaredFields();//获取传进来的class的所有属性 Object object = it.next(); //记录迭代器的下一个记录 for (int i = 0; i < fs.length; i++) { fs[i].setAccessible(true);//强暴遍历到的属性,以获取私有属性 Field f = object.getClass().getDeclaredField(fs[i].getName()); //根据强暴到的属性名再次获取属性 f.setAccessible(true); //强暴,获取私有属性 @R_197_10495@ng name = fs[i].getName(); //得到属性名 Object value = f.get(object); //得到属性名对应的属性值 o.put(name,value); //将属性名和属性值分别作为Key、value存入JSONObject中 } jsonArray.add(o); //最后将JSONObject加入JSONArray中 } return jsonArray; //返回JSONArray } catch (Exception E) { throw new RuntimeException(E); } }
这里如果返回的List,就需要采用我这里的方法了,也算个封装吧。用到了点泛型、反射。
以上是大佬教程为你收集整理的如何将DBUtil中使用BeanListHandler中转返回的List存入一个JSONArray中全部内容,希望文章能够帮你解决如何将DBUtil中使用BeanListHandler中转返回的List存入一个JSONArray中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。