使用ajax方法请求时,一般使用xml与json来传递数据,那么后台如何发送,前台接收并处理json类型的数据呢?
先说一说如何在后台发送json数据。
首先需要在项目中导入json.jar。这个jar包中有两个类,一个是JSONObject,一个是JSONArray,其中JSONObject对象代表一个JSON数据,而JSONArray相当于一个数组,里面包含多个JSON类型的数据。
往JSONObject添加数据有两种方法,一中是利用构造方法在创建对象时直接添加数据,另一种是创建好对象后使用put方法添加数据。
方法一:JSONObject json1 = new JSONObject("{'name':'刘备','age':'45','职业':'皇帝'}");
方法二:JSONObject json2 = new JSONObject();
json2.put("职位", "皇帝");
json2.put("name", "刘备");
json2.put("age", 45);
与JSONObject添加数据相同,JSONArray添加数据的方法也有两种,一个是利用构造方法,另一个是创建好对象后使用pt方法添加数据
方法一:JSONArray array = new JSONArray("[{'a':'A','b':'B'},{'c':'C','d':'D'}]");
方法二:
JSONObject json1 = new JSONObject("{'职位':'皇帝','age':'45','name':'刘备'}");
JSONObject json2 = new JSONObject();
json2.put("职位", "皇帝");
json2.put("name", "刘备");
json2.put("age", 45);
JSONArray array = new JSONArray();
array.put(0, json1);
array.put(1, json2);
接下来说一说前台ajax如何获取这些数据,ajax中的回调函数会首先得到servlet响应的json数据,如果是JSONObject类型的数据,使用下面的方法获取数据,
success:function(msg) {
for(var key in msg){//遍历json中所有的key
//key
//msg[key] value
}
}
如果是JSONArray类型的数据,
success:function(msg) {
for(var i=0;i<msg.length;i++){
var obj = msg[i];
for(var key in obj){
//key
//msg[key] value
}
} }
至此,后台可以成功发送json数据,前台也可以获取得到后台传递的json数据,如果需要从前台发送json数据,只需要在发送ajax请求时添加json类型的数据
作为参数就可以啦,后台获取这些数据与获取一般参数一样使用request.getParameter()即可。
---文章为原创,如有错误与不足之处,还望斧正,小生在此谢过啦---