本帖最后由 冯超 于 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, 下载次数: 14)
json要导入的jar包
|