日期:2014-05-19 浏览次数:21022 次
public String selectSingleLineToJson(String sql) {// 查询数据,返回String,再组合成json try { statement = connection.createStatement(); resultSet = statement.executeQuery(sql); ResultSetMetaData rsmd = resultSet.getMetaData();// 计算字段个数 int col = rsmd.getColumnCount(); // 获得总列数 String selectItems[] = new String[col];// 创建对象,存储结果,以返回 resultSet.next(); StringBuilder sb = new StringBuilder("{"); for (int j = 0; j < col; j++) sb.append("\"" + rsmd.getColumnName(j + 1) + "\":\"" + resultSet.getString(j + 1) + "\","); sb.delete(sb.length() - 1, sb.length()); sb.append("}"); resultSet.close(); return sb.toString(); } catch (SQLException e) { e.printStackTrace(); } return "{\"flag\":\"false\"}";// 出错处理 } public String selectMultiLineToJson(String sql) {// 查询数据,返回多个String数组,再组合成json数组 try { statement = connection.createStatement(); resultSet = statement.executeQuery(sql); ResultSetMetaData rsmd = resultSet.getMetaData();// int col = rsmd.getColumnCount(); // 获得总列数 StringBuilder sb = new StringBuilder("["); for (int i = 0; resultSet.next(); i++) { sb.append("{"); for (int j = 0; j < col; j++) sb.append("\"" + rsmd.getColumnName(j + 1) + "\":\"" + resultSet.getString(j + 1) + "\","); sb.delete(sb.length() - 1, sb.length()); sb.append("},"); } sb.delete(sb.length() - 1, sb.length()); if (sb.toString().equals("")) return "[{\"flag\":\"false\"}]";// 结果为空,出错处理; sb.append("]"); resultSet.close(); //System.out.println(sb.toString()); return sb.toString(); } catch (SQLException e) { e.printStackTrace(); } return "[{\"flag\":\"false\"}]";// 出错处理 }
------解决方案--------------------
gson可能是最好的了,毕竟是google搞得吗。
持久化的时候,直接持久化json字符串不久得了,Parse是个很快的过程。
------解决方案--------------------
我们用的是flexJson,听说好用,可以试试