2012-03-13 34 views
2

我指的是这个link但我稍微修改我的做法..结果集转换为JSON。我怎样才能打印json对象?

这是代码,我有:

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();它似乎没有工作..

你能帮我吗? ...

谢谢

回答

1

你的程序无法达到的print声明。如果您一直在使用像NetbeansEclipse这样的IDE,那会给您一个明确的警告。

2

这是一个简单的错字。而不是这样的:

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

做是有return语句之前,这

System.out.print(respJSON.toString()); 
    return respJSON; 
相关问题