在MVC模型中以JSON格式显示查询结果

时间:2019-05-26 10:50:35

标签: java json

我想从数据库中获取一些数据,并以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();
}

2 个答案:

答案 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);

    }