You need to create a Servlet
for that. Create a class which extends HttpServlet
and write code in doGet()
accordingly that it writes the desired JSON string to the response. You can use Google Gson to convert Java objects to a JSON string.
For example:
// Gather data.
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", 111);
map.put("title", "event1");
map.put("start", new SimpleDateFormat("yyyy-MM-10").format(new Date()));
map.put("url", "http://yahoo.com/");
// Convert to JSON string.
String json = new Gson().toJson(map);
// Write JSON string.
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
Then just map this servlet in web.xml
on the desired url-pattern
.
Instead of a Map
you could even create your Javabean class Event
:
public class Event {
private Long id;
private String title;
private Date start;
private URL url;
// Add/generate getters/setters.
}
You could even use Gson to convert it:
Event event = eventDAO.find(request.getParameter("id"));
String json = new Gson().toJson(event);
This way you can more easy collect them all in a List<Event>
which is preferable above a List<Map<String, String>>
:
List<Event> events = eventDAO.list();
String json = new Gson().toJson(events);