在使用json的时候,记得必须导入如下几个.jar包,最好是手动复制.jar包只lib路径下,否则可能出现异常。
commons-beanutils.jar commons-collections.jar commons-lang-2.5.jar(必须是2.x 3.x的会报ClassNotFoundException这个异常) commons-logging.jar ezmorph-1.0.6.jar json-lib.jar.导入这些jar包以后,就可以在后台 使用json来进行数据处理了。
JSONArray的使用:
这里做一个简单的示例:
定义一个Person类:
public class Person{
private String name;
private String sex;
private int age;
....
}
假如我们在servlet中使用了json
public class Test extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws
ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req,
HttpServletResponse resp)
throws
ServletException, IOException {
// TODO Auto-generated method
stub
resp.setContentType("text/xml;character=utf-8");
resp.setHeader("Cache-Control",
"no-cache");
try{
Person p =new
Person();
p.setName("小宝");
p.setAge(3);
p.setSex("男");
List<Person>
list =new ArrayList<Person>();
list.add(p);
try{
JSONArray
json =JSONArray.fromObject(list);
JSONObject
jb =new JSONObject();
jb.put("person",
json);
resp.getWriter().write(jb.toString());
}catch(IOException
e){
e.printStackTrace();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
前台的Ajax接收到后台返回json的数据
<script
type="text/javascript">
function validate(obj){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new
XMLHttpRequest();
}else{
xmlhttp=new
ActiveObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if
(xmlhttp.readyState==4 &&
xmlhttp.status==200){
var
back =xmlhttp.responseText;
//在这里遍历输出返回来的信息即可
}
}
var url
="fan/servlet/demo?name="+obj;
xmlhttp.open("POST",url,true);
xmlhttp.send();
}
</script>