1、服务器端定制需要返回的json数据
public class JsonServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
// 模拟已经从数据库查出数据来了
List userList = queryUserList();
// 对List中的数据进行json格式的转换并以字符串输出
out.println(toJson(userList));
out.close();
}
/*
* 对传入的List进行json数据的转换,具体的转换格式为:
* [{"name”:"zhangsan", “age”:23},
* {"name":”lisi”, "age":24},
* {"name":”wangwu”, "age":25}]
*/
public String toJson(List list) {
StringBuffer sb = new StringBuffer();
sb.append("[");
for(Iterator iter = list.iterator(); iter.hasNext();) {
User user = (User) iter.next();
sb.append("{/"name/":/"").append(user.getName())
.append("/",/"age/":/"").append(user.getAge()).append("/"}");
if(iter.hasNext()) {
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}
// 模拟从数据库中查询的数据放入List中返回
private List queryUserList() {
List userList = new ArrayList();
userList.add(new User("zhangsan",23));
userList.add(new User("lisi",24));
userList.add(new User("wangwu",27));
userList.add(new User("maliu",21));
userList.add(new User("zhaoqi",29));
return userList;
}
}
2、客户端处理服务器端返回json数据的方式
// 这是一个回调方法
function callback() {
if(xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
var user = xmlhttp.responseText;
// 对返回的数据进行一些格式化的操作
var obj = eval('('+ user +')');
alert(obj[0].name); // zhangsan
// 后面该怎样做,自己看着办
}
}
}