结果集为JSON。如何打印json对象?

时间:2012-03-13 15:09:06

标签: java json object resultset

我指的是link,但我略微修改了我的方法..

这是我的代码:

 public JSONArray generateJSON(ResultSet rs) {

        JSONArray respJSON = new JSONArray();

        try {
            java.sql.ResultSetMetaData rsmd = rs.getMetaData();
            int numColumns = rsmd.getColumnCount();
            while (rs.next()) {
                JSONObject obj = new JSONObject();
                for (int i = 1; i < numColumns + 1; i++) {

                    String columnName = rsmd.getColumnName(i);
                    if (rsmd.getColumnType(i) == java.sql.Types.ARRAY) {
                        obj.put(columnName, rs.getArray(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.BIGINT) {
                        obj.put(columnName, rs.getInt(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.BOOLEAN) {
                        obj.put(columnName, rs.getBoolean(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.BLOB) {
                        obj.put(columnName, rs.getBlob(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.DOUBLE) {
                        obj.put(columnName, rs.getDouble(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.FLOAT) {
                        obj.put(columnName, rs.getFloat(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.INTEGER) {
                        obj.put(columnName, rs.getInt(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.NVARCHAR) {
                        obj.put(columnName, rs.getNString(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.VARCHAR) {
                        obj.put(columnName, rs.getString(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.TINYINT) {
                        obj.put(columnName, rs.getInt(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.SMALLINT) {
                        obj.put(columnName, rs.getInt(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.DATE) {
                        obj.put(columnName, rs.getDate(i));
                    } else if (rsmd.getColumnType(i) == java.sql.Types.TIMESTAMP) {
                        obj.put(columnName, rs.getTimestamp(i));
                    } else {
                        obj.put(columnName, rs.getObject(i));
                    }

                }
                respJSON.put(obj);
                //respJSON.add(obj);

            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        respJSON.toString();

        return respJSON;

        System.out.print(respJSON.toString());
    }

我的问题是我无法打印json字符串以在控制台中看到它...

我试过respJSON.toString();它似乎没有工作..

你能帮帮我吗? ......

谢谢

2 个答案:

答案 0 :(得分:4)

这是一个简单的拼写错误。而不是这个:

    respJSON.toString();
    return respJSON;
    System.out.print(respJSON.toString());

这样做

    System.out.print(respJSON.toString());
    return respJSON;

答案 1 :(得分:1)

您的程序无法访问print语句,因为之前有return语句。如果您使用的是NetbeansEclipse之类的IDE,则会给您一个明确的警告。