例如:List<User> list = new ArrayList<User>();
User user1 = new User("userId","name","age","sex");
User user2 = new User("userId1","name1","age1","sex1");
User user3 = new User("userId2","name2","age2","sex2");
list.add(user1);list.add(user2);list.add(user3);
现在要将list转换成json,要求解析之后的key顺序和user的顺序一样,如果user的某个属性是null,那么就解析成空串,请问怎么解决?
看看这片子文章。
https://www.cnblogs.com/xmaomao/p/3184542.html
现在是mybatis返回一个list集合,list存储的对象类型不确定,然后根据list这个集合用jxl生成Excel表格,现在我是想写一个通用的工具类,只要传递一个list就可以根据list创建出对应的Excel。
问题是用gson解析,那么对象属性是null的时候就跳过了,这样生成的表格就会错列;用jsonlib的JSONArray解析就会把list存的对象的属性顺序打乱。
public static <T> void createExcel(List<T> list, String sheetName, int sheetNum, String path) { /*Gson gson = new Gson(); String gsonStr = gson.toJson(list);*/ JSONArray jsonArray = JSONArray.fromObject(list); try { //这里的path是包含文件名的,在传入之前要保证路径完整存在 WritableWorkbook book = Workbook.createWorkbook(new File(path)); WritableSheet sheet = book.createSheet(sheetName, sheetNum); int hang = 0; for (Object object : jsonArray) { JSONObject jsonObject = JSONObject.fromObject(object); @SuppressWarnings("rawtypes") Iterator iterator = jsonObject.keys(); int lie = 0; while (iterator.hasNext()) { sheet.addCell(new Label(lie++, hang, jsonObject.getString((String) iterator.next()))); } hang++; } book.write(); book.close(); } catch (Exception e) { e.printStackTrace(); } }
这是代码,望大神给点意见!