我正在尝试从数据库创建一个JSON对象,但我正在努力使用数组名称。 创建的JSON对象应如下所示:
{
"Table_name":{ "table_column_name":Value}
}
例如,如果我们有一个名为Test的表和一个值为123的列ID:
{ "Test" : { "ID":123}}
我的代码是:
public static JSONArray extractToJson(ResultSet rs) throws SQLException {
JSONArray json = new JSONArray();
resultmetadata = rs.getMetaData();
while (rs.next()) {
JSONObject obj = new JSONObject();
JSONObject obj2 = new JSONObject();
for (int i = 1; i <= resultmetadata.getColumnCount(); i++) {
String column_name_title = resultmetadata.getColumnName(i);
String column_name = resultmetadata.getColumnName(i);
if (resultmetadata.getColumnType(i) == java.sql.Types.ARRAY) {
obj.put(column_name_title, rs.getArray(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.BIGINT) {
obj.put(column_name_title, rs.getInt(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.BOOLEAN) {
obj.put(column_name_title, rs.getBoolean(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.BLOB) {
obj.put(column_name_title, rs.getBlob(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.DOUBLE) {
obj.put(column_name_title, rs.getDouble(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.FLOAT) {
obj.put(column_name_title, rs.getFloat(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.INTEGER) {
obj.put(column_name_title, rs.getInt(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.NVARCHAR) {
obj.put(column_name_title, rs.getNString(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.VARCHAR) {
obj.put(column_name_title, rs.getString(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.TINYINT) {
obj.put(column_name_title, rs.getInt(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.SMALLINT) {
obj.put(column_name_title, rs.getInt(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.DATE) {
obj.put(column_name_title, rs.getDate(column_name));
} else if (resultmetadata.getColumnType(i) == java.sql.Types.TIMESTAMP) {
obj.put(column_name_title, rs.getTimestamp(column_name));
} else {
obj.put(column_name_title, rs.getObject(column_name));
}
}
json.put(obj);
}
return json;
}
它产生的JSON如下:
{
"ID": 123,
}
这个JSON文件不会创建任何表名,而且它是我们必须拥有的。
答案 0 :(得分:0)
你必须使用像obj2这样的另一个对象。做一些像:
obj2.put("Test",obj);