您的位置:首页 > Web前端 > JavaScript

ajax发送json格式数据到后台(输入流content)

2015-10-21 16:50 981 查看
有时后台接口获取数据的时候不是使用键值对的参数获取,尤其Android发送数据是使用json格式输入流发送的,ajax使用post发送方法如下:

var da = {ckid:1,category:1};

$.ajax({
type: "POST",
url: "http://121.42.210.244:8080/haier_jiekou/storegoods/selestByCkidAngCategoryMap",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(da),
dataType: "json",
success: function (message) {
var ff = message.data[0];
console.log(ff);
},
error: function (message) {
$("#request-process-patent").html("提交数据失败!");
}
});


ajax发送添加

contentType: "application/json; charset=utf-8",


并且data值为字符串。

发送到后台的数据则通过

request.getInputStream()


获取。

后台数据处理

import org.json.JSONObject;
/**
* 解析请求中的内容,转换为map格式
*
* @author HZC
* @param request
* @return
*/
public static Map<String, String> convertRequestPrama(HttpServletRequest request) {
Map<String, String> map = new HashMap<String, String>();
// 读取请求内容
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
} catch (IOException e) {
e.printStackTrace();
}
String line = null;
StringBuilder sb = new StringBuilder();
try {
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
// 将资料解码
String reqBody = sb.toString();

if (StringUtils.isEmpty(reqBody)) return null;

JSONObject jsonObject = new JSONObject(reqBody);

Iterator iterator = jsonObject.keys();
String key = null;
String value = null;
while (iterator.hasNext()) {
key = (String) iterator.next();
value = jsonObject.getString(key);
map.put(key, value);
}
return map;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json ajax android request