色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java mysql結(jié)果轉(zhuǎn)json

錢瀠龍1年前8瀏覽0評論

在Java程序開發(fā)中,經(jīng)常需要將MySQL數(shù)據(jù)庫查詢的結(jié)果轉(zhuǎn)換為JSON格式。JSON格式以其簡潔性和易讀性而成為了現(xiàn)在Web開發(fā)領(lǐng)域中最受歡迎的數(shù)據(jù)交換格式之一。Java中有很多庫可以實(shí)現(xiàn)將MySQL查詢結(jié)果轉(zhuǎn)換為JSON格式,例如GSON、Jackson等等。

GSON是Google發(fā)布的一個JSON庫,是一個處理JSON格式數(shù)據(jù)的Java庫。 在簡單的場景下,使用GSON轉(zhuǎn)換MySQL結(jié)果至JSON是非常簡單的。下面的代碼展示了使用GSON庫獲取MySQL結(jié)果,并將其轉(zhuǎn)換為JSON格式:

// 獲取MySQL結(jié)果集
PreparedStatement ps = conn.prepareStatement("SELECT * FROM books");
ResultSet rs = ps.executeQuery();
// 定義一個JSON數(shù)組來存儲MySQL查詢結(jié)果
JsonArray jsonArray = new JsonArray();
// 遍歷MySQL結(jié)果集
while (rs.next()) {
// 取出每一行查詢結(jié)果并組裝成JSONObject
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("id", rs.getString("id"));
jsonObject.addProperty("title", rs.getString("title"));
jsonObject.addProperty("author", rs.getString("author"));
jsonObject.addProperty("price", rs.getDouble("price"));
// 添加到JSON數(shù)組中
jsonArray.add(jsonObject);
}
// 將JSON數(shù)組轉(zhuǎn)為JSON字符串
String json = new Gson().toJson(jsonArray);

以上代碼會生成一個包含MySQL結(jié)果的JSON字符串。但是,在數(shù)據(jù)查詢比較復(fù)雜的情況下,以上的代碼實(shí)現(xiàn)方式并不適用。因?yàn)镽esultSet的模型并不支持嵌套的JSON結(jié)構(gòu)。這時候,我們可以借助JSON框架(例如Jackson),手動構(gòu)造JSON結(jié)構(gòu)。

下面的代碼展示了使用Jackson進(jìn)行MySQL結(jié)果轉(zhuǎn)換到JSON的方式:

// 獲取MySQL結(jié)果集
PreparedStatement ps = conn.prepareStatement("SELECT * FROM books");
ResultSet rs = ps.executeQuery();
// 定義一個List來存儲MySQL查詢結(jié)果
List<HashMap<String, Object>> data = new ArrayList<>();
// 遍歷MySQL結(jié)果集
while (rs.next()) {
HashMap<String, Object> row = new LinkedHashMap<>(rs.getMetaData().getColumnCount());
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
row.put(rs.getMetaData().getColumnLabel(i), rs.getObject(i));
}
data.add(row);
}
// 構(gòu)造JSON對象
ObjectNode node = new ObjectMapper().createObjectNode();
ArrayNode rows = node.putArray("rows");
for (HashMap<String, Object> row : data) {
ObjectNode rowNode = rows.addObject();
for (Map.Entry<String, Object> entry : row.entrySet()) {
rowNode.put(entry.getKey(), String.valueOf(entry.getValue()));
}
}
// 將JSON對象轉(zhuǎn)為JSON字符串
String json = node.toString();

以上代碼同樣能夠?qū)ySQL結(jié)果轉(zhuǎn)化為JSON格式字符串。在復(fù)雜場景下,手動構(gòu)造JSON結(jié)構(gòu)的方式可以更加靈活地處理JSON的嵌套結(jié)構(gòu)。