resultset into JSON. How can I print the json Object?

20,653

Solution 1

Your program cannot reach to the print statement as there is a return statement before that. If you had been using an IDE like Netbeans or Eclipse, that would have given you a clear warning.

Solution 2

this is a simple typo. instead of this:

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

do this

    System.out.print(respJSON.toString());
    return respJSON;
Share:
20,653
David
Author by

David

Updated on August 14, 2020

Comments

  • David
    David over 3 years

    I am referring to this link but I have slightly modified my approach..

    This is the code that I have :

     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());
        }
    

    My problem is that I can not print the json string to see it in the console ...

    I have tried the respJSON.toString(); and it doesnt seem to work ..

    Could you please help me ? ...

    Thank you