本文前端采用了jquery, 后台servlet,处理json时,采用的json-lib包,本文中只贴出部分代码。有关json-lib的相关jar包请找度娘。
以下是前端代码
var data = [
{name: "张三", score: "88"},
{name: "李四", score: "78"},
{name: "王五", score: "68"}
];
data = JSON.stringify(data);
$.ajax({
type : "POST",
url : ctx+"/schedule/jsonToList/",
data : data,
dataType : "JSON",
contentType:"application/json",
success : function(result) {
console.log(result);
}
});
后台处理,用的是paoding-rose,用request接受到流之后,用apache的common io 包中的IOUtils进行流转换成string,然后用jsonToList方法把json字符串转换成java对象
@Post("jsonToList")
public String jsonToList(final Invocation inv) throws IOException {
String jsontest = IOUtils.toString(inv.getRequest().getInputStream());
String json = new String(jsontest.getBytes("gbk"),"UTF-8");
List<HashMap> list = (List<HashMap>)JSONUtils.jsonToList(json, HashMap.class);
return "@"+JSONUtils.ListToJson(list);
}
下面是JSONUtils.jsonToList方法
public static <T> T jsonToList(String json,Class<T> beanCalss){
net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(json);
T bean = (T) net.sf.json.JSONArray.toList(jsonArray, beanCalss);
return bean;
}