10:14 PM - JSON in Java
I've been using JSON with Dojo Data Grids lately in PHP. Now, I want to use something similar on this site. I decided on the json-simple library. It's actually quite easy to use.
Encoding examples:
http://code.google.com/p/json-simple/wiki/EncodingExamples
<%@ page contentType="text/json;charset=UTF-8" language="java"%>
<%@ page import="com.justjournal.model.User" %>
<%@ page import="org.apache.cayenne.DataObjectUtils" %>
<%@ page import="org.apache.cayenne.access.DataContext" %>
<%@ page import="org.apache.cayenne.query.SelectQuery" %>
<%@ page import="org.json.simple.JSONObject" %>
<%@ page import="java.util.*" %>
<%@ page import="org.json.simple.JSONArray" %>
<%
out.clearBuffer();
SelectQuery query = new SelectQuery(User.class);
query.addOrdering(User.USERNAME_PROPERTY, true);
DataContext context = DataContext.getThreadDataContext();
List users = context.performQuery(query);
JSONObject obj = new JSONObject();
JSONArray list1 = new JSONArray();
Iterator it = users.iterator();
while (it.hasNext()) {
Map map = new HashMap();
User u = (User) it.next();
if (u.getUsername().length() > 2 && !new com.justjournal.User(u.getUsername()).isPrivateJournal())
{
map.put("id", DataObjectUtils.intPKForObject(u));
map.put("username", u.getUsername());
map.put("name", u.getName());
map.put("since", u.getSince());
list1.add(map);
}
}
obj.put("items", list1);
obj.put("label","id");
obj.put("identifier", "id");
obj.writeJSONString(out);