用json,需导入6个包,如下:
json-lib-2.4-jdk15.jar
ezmorph-1.0.6.jar
commons-logging.jar
commons-lang.jar
commons-collections.jar
commons-beanutils.jar
把不存储对象的Map转换成json, 要使用jsonObject对象:
Map<String, Object> map = new HashMap<String, Object>();
map.put("userId", 1001);
map.put("userName", "张三");
map.put("userSex", "男");
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.println(jsonObject);
PrintWriter out = resp.getWriter();
out.print(json);
out.close();
把存储对象的Map转换成json, 要使用jsonObject对象,key不能为"1"
resp.setCharacterEncoding("utf-8");
PrintWriter out = resp.getWriter();
User user = new User();
user.setId(2);
user.setName("诸葛");
Map map = new HashMap();
map.put("a", user);
JSONObject json = JSONObject.fromObject(map);
out.print(json);
ajax回调方法解析json字符串,用eval(“()”)生成对象
function callback(){
//条件也可省略不写
if(xmlhttp.readyState==4 && xmlhttp.status==200){
var o = eval("("+ xmlhttp.responseText +")");
alert(o.a.name);
}
}
resp.setCharacterEncoding("utf-8");
PrintWriter out = resp.getWriter();
User user = new User();
user.setId(2);
user.setName("诸葛");
Map map = new HashMap();
map.put("a", user);
JSONArray json = JSONArray.fromObject(map);
out.print(json);
ajax回调方法解析json字符串
function callback(){
//条件也可省略不写
if(xmlhttp.readyState==4 && xmlhttp.status==200){
var o = eval("("+ xmlhttp.responseText +")");
for(var i = 0 ; i < o.length ; i++){
alert(o[i].a.name);
}
}
}
将数组转换为JSON,数组和List,Set,对象都可以用JSONArray或JSONObject,ajax解析如上方式。