ajax,json学习笔记(三)JSON和jquery实现ajax
2017-11-11 21:33
633 查看
利用JSON实现前后台数据交互,且方便
2) 是存储和交换文本信息的语法,类似xml,采用键值对的方式来组织
3) JSON是独立于语言的,任何语言按json规则就能解析json
4)优点
长度比xml短,读写速度快,可以用javaScript内建的方法直接解析转换成javascript对像
名称和值在双引号中,例如:"name":"马玉"
2)JSON值可以使数字、字符串、逻辑值、数组(在[]中)、对象(在{}中)、null
例子
{
"people": [
{
"name": "郭靖",
"age": "12"
},
{
"name": "黄蓉",
"age": "12"
}]
}
注意:eval执行第三方JSON数据危险(可能有恶意代码),会执行json字符串中的js方法
JSON.parse()除了解析字符串还可以捕捉JSON中语法错误
eval: <script>
var jsondata = '{"people": [{"name": "郭靖","age": "12"},{"name": "黄蓉","age": "12"}]}';
var dataObj=eval("("+jsondata+")");
alert(dataObj.people[0].name)
</script>
JSON.parse: <script>
var jsondata = '{"people": [{"name": "郭靖","age": "12"},{"name": "黄蓉","age": "12"}]}';
var dataObj=JSON.parse(jsondata);
alert(dataObj.people[0].name)
</script>
2)JSON校验工具:http://json.parser.online.fr/
"success":true,
"msg":"xxx"
}
后台通过写成json字符串或者JSONArray.toJSON(Object)等方法把对象转化为json格式数据传到前台,前台js对其进行解析展示
例子
后台: // ajax不用返回页面返回值为void
@RequestMapping("/jQUeryTest")
public void jQUeryTest(HttpServletRequest request, HttpServletResponse response){
List<Category> cs= categoryService.list();
// 把列表转为json数组,ModelAndView是直接把列表转为json格式
String jsonResult = JSON.toJSONString(cs);
renderData(response, jsonResult);
}
private void renderData(HttpServletResponse response, String data) {
response.setCharacterEncoding("UTF-8");
PrintWriter printWriter = null;
try {
printWriter = response.getWriter();
printWriter.print(data);
} catch (IOException ex) {
System.out.println(ex);
} finally {
if (null != printWriter) {
printWriter.flush();
printWriter.close();
}
}
}
页面:$(document).ready(function(){
$("#test3").click (function(){
$.ajax({
type:'POST',
url:'http://localhost:8080/MyFirstSSM/jQUery
4000
Test',
data: {
},
dataType:'json',
success:function(data){ //已经解析
$("#test4").text("第1个用户:"+data[0].name);
},
error:function(jqXHR){
alert('发生错误:'+jqXHR.status);
}
});
});
});
通过设置值来完成ajax请求
1、常用设置
1)type:请求类型,‘post'或‘get',默认’get'
2)url:发送请求的地址
3)data:一个对象,连同请求发送到服务器中的数据
4)dataType:预期服务器返回的数据类型,如果不指定,jQuery自动根据HTTP包MIME信息智能判断,一般采用JSON,设置为'json'
5) success:是一个方法,请求成功后的回调函数,传入返回后的数据,以及包含成功代码的字符串
6)error:是一个方法,请求失败调用的函数,传入XMLHttpRequest对象
例子
$("#test3").click (function(){
$.ajax({
type:'get',
url:'http://localhost:8080/MyFirstSSM/listCategory',
dataType:'json',
success:function(data){ //已经解析过了字符串
$("#test4").text("第2个用户:"+data[1].name);
},
error:function(jqXHR){
alert('发生错误:'+jqXHR.status);
}
});
});
1、基本概念
1) JSON(JavaScript Object Notation):javaScript对象表示方法2) 是存储和交换文本信息的语法,类似xml,采用键值对的方式来组织
3) JSON是独立于语言的,任何语言按json规则就能解析json
4)优点
长度比xml短,读写速度快,可以用javaScript内建的方法直接解析转换成javascript对像
2、JSON 语法规则
1)JSON 数据书写格式:名称/值 对名称和值在双引号中,例如:"name":"马玉"
2)JSON值可以使数字、字符串、逻辑值、数组(在[]中)、对象(在{}中)、null
例子
{
"people": [
{
"name": "郭靖",
"age": "12"
},
{
"name": "黄蓉",
"age": "12"
}]
}
3、JSON 解析
1)方法:eval 和 JSON.parse注意:eval执行第三方JSON数据危险(可能有恶意代码),会执行json字符串中的js方法
JSON.parse()除了解析字符串还可以捕捉JSON中语法错误
eval: <script>
var jsondata = '{"people": [{"name": "郭靖","age": "12"},{"name": "黄蓉","age": "12"}]}';
var dataObj=eval("("+jsondata+")");
alert(dataObj.people[0].name)
</script>
JSON.parse: <script>
var jsondata = '{"people": [{"name": "郭靖","age": "12"},{"name": "黄蓉","age": "12"}]}';
var dataObj=JSON.parse(jsondata);
alert(dataObj.people[0].name)
</script>
2)JSON校验工具:http://json.parser.online.fr/
4、约定JSON
{"success":true,
"msg":"xxx"
}
后台通过写成json字符串或者JSONArray.toJSON(Object)等方法把对象转化为json格式数据传到前台,前台js对其进行解析展示
5、 springmvc处理ajax请求
参考:https://www.cnblogs.com/tingbogiu/p/5796199.html例子
后台: // ajax不用返回页面返回值为void
@RequestMapping("/jQUeryTest")
public void jQUeryTest(HttpServletRequest request, HttpServletResponse response){
List<Category> cs= categoryService.list();
// 把列表转为json数组,ModelAndView是直接把列表转为json格式
String jsonResult = JSON.toJSONString(cs);
renderData(response, jsonResult);
}
private void renderData(HttpServletResponse response, String data) {
response.setCharacterEncoding("UTF-8");
PrintWriter printWriter = null;
try {
printWriter = response.getWriter();
printWriter.print(data);
} catch (IOException ex) {
System.out.println(ex);
} finally {
if (null != printWriter) {
printWriter.flush();
printWriter.close();
}
}
}
页面:$(document).ready(function(){
$("#test3").click (function(){
$.ajax({
type:'POST',
url:'http://localhost:8080/MyFirstSSM/jQUery
4000
Test',
data: {
},
dataType:'json',
success:function(data){ //已经解析
$("#test4").text("第1个用户:"+data[0].name);
},
error:function(jqXHR){
alert('发生错误:'+jqXHR.status);
}
});
});
});
6、jquery实现ajax
jQuery.ajax([settings])通过设置值来完成ajax请求
1、常用设置
1)type:请求类型,‘post'或‘get',默认’get'
2)url:发送请求的地址
3)data:一个对象,连同请求发送到服务器中的数据
4)dataType:预期服务器返回的数据类型,如果不指定,jQuery自动根据HTTP包MIME信息智能判断,一般采用JSON,设置为'json'
5) success:是一个方法,请求成功后的回调函数,传入返回后的数据,以及包含成功代码的字符串
6)error:是一个方法,请求失败调用的函数,传入XMLHttpRequest对象
例子
$("#test3").click (function(){
$.ajax({
type:'get',
url:'http://localhost:8080/MyFirstSSM/listCategory',
dataType:'json',
success:function(data){ //已经解析过了字符串
$("#test4").text("第2个用户:"+data[1].name);
},
error:function(jqXHR){
alert('发生错误:'+jqXHR.status);
}
});
});
相关文章推荐
- Struts学习笔记(三):Ajax +json+JQuery的综合使用
- 黑马程序员_学习日记73_725ASP.NET(禁用Cookie、ASP.NET中的重要对象、JavaScript实现AJAX、两种Json格式的序列化方法、JQuery中实现ajax的五种方法)
- JQuery学习笔记 [Ajax实现新闻点评功能] (6-3)
- AJAX学习之序列二:struts2 jquery json 实现AJAX 注册ID验证
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
- AJAX学习之序列二:struts2 jquery json 实现AJAX 注册ID验证
- jQuery学习笔记(1)----用jQuery实现异步通信(用json传值)
- 【CI学习笔记】利用jquery中的ajax,调用接口,实现登录
- Ajax基础学习笔记三—jQuery实现Ajax
- php学习笔记(三十)ajax请求和接收参数的实现方式(包括json数据格式的简单处理)
- jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
- jQuery学习笔记--ajax查询,jQuery解析返回的json数据 详解
- AJAX学习之序列二:struts2 jquery json 实现AJAX 注册ID验证
- struts2学习笔记--使用struts2插件实现ajax处理(返回json数据)
- jQuery学习笔记--ajax查询,jQuery解析返回的json数据 详解
- jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
- 【JAVAWEB学习笔记】28_jquery加强:json数据结构、jquery的ajax操作和表单校验插件
- JQuery实现AJAX学习笔记(1/3)
- 基于jQuery的AJAX和JSON实现纯html数据模板
- asp.net ajax实现:Jquery+Json