набор результатов в JSON.Как я могу напечатать объект json? - PullRequest
2 голосов
/ 13 марта 2012

Я имею в виду эту ссылку , но я немного изменил свой подход ..

Это мой код:

 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 ]

4 голосов
/ 13 марта 2012

это простая опечатка.вместо этого:

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

сделать это

    System.out.print(respJSON.toString());
    return respJSON;
1 голос
/ 13 марта 2012

Ваша программа не может достичь оператора print, так как до этого есть оператор return. Если бы вы использовали IDE, например Netbeans или Eclipse, это дало бы вам четкое предупреждение.

...