我想从数据库中获取一些数据,并以JSON格式显示它们。我正在使用MVC模型。我不知道该怎么做。
这是我的DAO:
public static List<NewsModel> getAll() {
Connection con = ConnectionManagment.CreateConnection();
List<NewsModel> newsList = new ArrayList<>();
try {
java.sql.PreparedStatement ps = con
.prepareStatement("select j.title,
j.content, j.displayDate from JournalArticle j LIMIT 5");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
NewsModel news = new NewsModel();
news.setTitle(rs.getString("title"));
String date = rs.getString("displayDate");
SimpleDateFormat smpl = new
SimpleDateFormat("yyyy-MM-dd");
news.setDisplayDate(smpl.parse(date));
news.setContent(rs.getString("content"));
newsList.add(news);
}
} catch (Exception e) {
e.printStackTrace();
}
return newsList;
}
这是我的servlet:
List<NewsModel> news = (List<NewsModel>) new NewsModel();
news = SaipaDAO.getAll();
JSONArray newsArr = new JSONArray();
for (Object n : news) {
JSONObject newsObj = new JSONObject();
}
答案 0 :(得分:0)
简单的选择是使用Gson库。
然后:
NewsModel obj = new NewsModel ();
Gson gson = new Gson();
String json = gson.toJson(obj); //convert
System.out.println(json);
This question也很有趣。如果需要,请检查它。
答案 1 :(得分:0)
我找到了。我在定义foreach陈述时犯了一个错误。该代码有效:
List<NewsModel> news = new ArrayList<NewsModel>();
JSONArray newsArr = new JSONArray();
news = SaipaDAO.getAll();
for (NewsModel n : news) {
JSONObject newsObj = new JSONObject();
newsObj.put("title", n.getTitle());
newsObj.put("content", n.getContent());
newsObj.put("displayDate", n.getDisplayDate());
newsArr.add(newsObj);
}