0

I wanna fetch some data from a database and show them in JSON format. Im using MVC model. I don't know how to do that.

This is my 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;
}

This is my servlet :

List<NewsModel> news = (List<NewsModel>) new NewsModel();
news = SaipaDAO.getAll();

JSONArray newsArr = new JSONArray();
for (Object n : news) {
    JSONObject newsObj = new JSONObject();
}
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
shamiiim
  • 11
  • 5
  • Possible duplicate of [Converting Java objects to JSON with Jackson](https://stackoverflow.com/questions/15786129/converting-java-objects-to-json-with-jackson) – MTCoster May 26 '19 at 11:03

2 Answers2

0

Simple choice is to use Gson library.

Then:

NewsModel obj = new NewsModel ();
Gson gson = new Gson();
String json = gson.toJson(obj); //convert 
System.out.println(json);

This question is interesting too. Check it if you want.

George Z.
  • 6,643
  • 4
  • 27
  • 47
0

I found it. I made a mistake in define foreach statment. this code works :

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

    }
shamiiim
  • 11
  • 5