一,用JS发送JSON数据到后台:
function LoginInfo(userid,password){
this.userid=userid;
this.password=password;
}
function prepareJSON(){
var userid = document.getElementById( "userid ").value;
var password = document.getElementById( "password ").value;
var logininfo = new LoginInfo();
logininfo.userid=escape(userid);
logininfo.password=escape(password);
return logininfo.toJSONString();
}
function validate(){
createXMLHttpRequest();
var logininfostr = prepareJSON();
var method = "post ";
var url = "LoginServlet ";
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open(method,url);
xmlHttp.setRequestHeader( "Content-Type ", "application/x-www-form-urlencoded ");
xmlHttp.send(logininfostr);
document.forms[0].action = "login.do ";
document.forms[0].submit();
return true;
}
二.后台解析JSON,不过,这个需要用到json.jar,www.json.org下载JSON JAVA,这个下载下来的是源文件,可以自己打包,我就是这样做的!
request.setCharacterEncoding( "UTF-8 ");
String logininfo = readJSONString(request);
JSONObject jsonLoginInfo = null;
LoginInfoBean infoBean = new LoginInfoBean();
// 读取JSON数据
try {
jsonLoginInfo = new JSONObject(logininfo);
infoBean.setUserid(jsonLoginInfo.getString( "userid "));
infoBean.setPassword(jsonLoginInfo.getString( "password "));
} catch (JSONException e) {
e.printStackTrace();
error = true;
}
//TODO
private String readJSONString(HttpServletRequest request) {
StringBuffer json = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null) {
json.append(line);
}
} catch (Exception e) {
System.out.println(e.toString());
error = true;
}
return json.toString();
}
前台用JAVASCRIPT eval()函数可以解析!
www.json.org
Json的例子
最新推荐文章于 2024-07-12 16:42:46 发布