黑马程序员技术交流社区
标题:
关于jquery,ajax,json
[打印本页]
作者:
冯超
时间:
2013-10-15 15:53
标题:
关于jquery,ajax,json
本帖最后由 冯超 于 2013-10-15 19:54 编辑
今天写一个jquery的ajax用户登录验证,发现需要用到json,于是就有了下面的笔记。
$.ajax({
type: "POST",
url: "../servlet/AdminServlet",
data: formdata,
dataType: 'json',
success: function(data){
var res = data.result; //获取从后台调用的数据
//alert(res);
if(res == "no") {
$("#sp").html("用户名获取密码有误");
$("#sp").css("color","red");
} else {
$("form").eq(0).submit();//jquery过去选择器 第一个表单
}
}
});
复制代码
这个是我登录页面写的js,前面就不说了,主要说:
success: function(data){
}这个内容。
学过原生态javascript的人肯定知道,可以用httpResponse这个对象获取后台(response.getOutputStream().writer("str".getBytes()))打印的内容。
在这个方法中,data就是获取后台打印的那个内容,不过那个内容的格式必须是json的,套用51cto版主的话来说就是:
后台out.write()方法里是类似JSON的字符串,你可以手动拼接,或者用些工具,然后前台的success:function(data)会自动转换为JSON数据,你要取,可以直接data.属性即可
。
对于这句话,我只知道当初学黑马冯威视频的时候提到过json,里面的内容如下:
var test = {"first": "zhangsan", "second": "lisi", "last": "wangwu" };
var test1 = {"person": ["students", "teachers"]};
var test2 ={"animal": [
{"cat": ["whit cat", "black cat"]} ,
{"dog": ["big dog", "small dog"]}
]
};
alert(test.first);
alert(test1.person[0]);
alert(test2.animal[0].cat[1]);
这一点也是很重要的。
问题是如何在后台将数据封装称json格式了?
答案是JSONObject这套API,里面很好的接口封装了json。
下面java类就是JSONObject的用法:
package test;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JsonTest {
/**
* @param args
*/
public static JSONObject getJSONObject() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("1", "sad");
jsonObject.put("2", new String("nihao"));
return jsonObject;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.打印那个json对象
JSONObject jsonObject = getJSONObject();
System.out.println();
//2.判断输出类型
boolean isArray = jsonObject.isArray();
boolean isEmpty = jsonObject.isEmpty();
boolean isNullObject = jsonObject.isNullObject();
//添加属性
jsonObject.element("address", "swap lake");
System.out.println("添加属性后的对象==>"+jsonObject);
//返回一个JSONArray对象
JSONArray jsonArray = new JSONArray();
jsonArray.add(0, "this is a jsonArray value");
jsonArray.add(1,"another jsonArray value");
jsonObject.element("jsonArray", jsonArray);
JSONArray array = jsonObject.getJSONArray("jsonArray");
System.out.println("返回一个JSONArray对象:"+array);
//根据key返回一个字符串
String jsonString = jsonObject.getString("1");
System.out.println("jsonString==>"+jsonString);
}
}
复制代码
所以若在后台:jsonObject.put("result", "yes");
out.write(jsonObject.toString().getBytes());
则在succeed方法中应:data.result就可以获取打印的yes!
json.jpg
(23.05 KB, 下载次数: 10)
下载附件
2013-10-15 19:51 上传
json要导入的jar包
作者:
冯超
时间:
2013-10-15 19:58
自己顶一个,喜欢 黑马,喜欢论坛,喜欢在里面记日志
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2