日期:2014-05-16 浏览次数:20401 次
// 查询所有父类板块 public String findAllFatherBoard() throws IOException { // 接收查询的结果集 List<ForumBoard> boardList = boardDAO .get("from ForumBoard fb where fb.forumBoard=null and fb.boardAuditing='true'"); // 判断是否存在数据 if (boardList != null && boardList.size() > 0) { // 声明JsonConfig配置文件对象 JsonConfig jsonConfig = new JsonConfig(); // 设置循环检测策略 jsonConfig .setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); // json字段重命名 // java--->json修改字段名字的时候使用jsonConfig.registerJsonPropertyNameProcessor(target, // propertyNameProcessor); // json--->java的时候使用jsonConfig.registerJavaPropertyNameProcessor(target, // propertyNameProcessor); jsonConfig.registerJsonPropertyNameProcessor(ForumBoard.class, // 创建内部类修改字段名字的一个接口 new PropertyNameProcessor() { @Override public String processPropertyName(Class obj, String name) { // 将javaben中的指定字段修改名字, if (name.equalsIgnoreCase("boardId")) { return "id"; } else if (name.equalsIgnoreCase("boardCountPt")) { return "countPost"; } else if (name.equalsIgnoreCase("boardTitle")) { return "text"; } else if (name.equalsIgnoreCase("forumBoards")) { return "children"; } else if (name.equalsIgnoreCase("boardSeeNb")) { return "countSee"; } else if (name.equalsIgnoreCase("forumBoard")) { return "fatherBoard"; } // System.out.println("==========" + name); return "other"; } }); // 设置json的属性的过滤器 // 创建属性过滤器的内部内部对象 jsonConfig.setJsonPropertyFilter(new PropertyFilter() { // 重写内部的允许字段通过的方法 public boolean apply(Object source, String name, Object value) { // 排除的字段名字(属性名) if (name.equals("forumPosts") || name.equals("forumUser") || name.equals("id") || name.equals("boardCreatTm") || name.equals("boardAuditing")) { return true; } else { return false; } } }); // jsonConfig.setRootClass(ForumBoard.class); // 将对象转换成json数据 // 创建jsonArray数组的jso对象,并读取配置对象 try { // 将目标对象和json配置对象一起读入JSONArray.fromObject(boardList, // jsonConfig); // 这样就可以获取想要的数据的json格式的数据了 JSONArray jsonArray = JSONArray.fromObject(boardList, jsonConfig); System.out.print(jsonArray.toString()); // 存入域中 HttpServletResponse response = ServletActionContext .getResponse(); response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); out.println(jsonArray.toString()); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } } else { message = "NOFIND"; } return "FINDALLBOARD"; }