json字符串就是{stu_id:1001,stu_name:晓春,......}这样的数据我们需要解析json字符串,从servlet层传过来就是json我们用异步获取$.getJSON("findone.do",{"id":id},function(msg)和$.get("findone.do",{"id":id},function(msg)的区别
区别:
$.getJSON()
和 $.get()
都是 jQuery 库提供的用于发送 AJAX 请求的方法,但它们在使用方式和返回结果方面略有不同。
-
$.getJSON("findone.do",{"id":id},function(msg)
:$.getJSON()
是一个简便的方法,用于发送 GET 请求并期望服务器返回 JSON 数据。"findone.do"
是请求的 URL,{"id":id}
是作为请求参数发送给服务器的数据,function(msg)
是接收响应数据并进行处理的回调函数。- 在成功获取到服务器响应后,回调函数会被执行,参数
msg
将包含从服务器返回的 JSON 数据。
-
$.get("findone.do",{"id":id},function(msg)
:$.get()
是一个较为通用的方法,用于发送 GET 请求。"findone.do"
是请求的 URL,{"id":id}
是作为请求参数发送给服务器的数据,function(msg)
是接收响应数据并进行处理的回调函数。- 在成功获取到服务器响应后,回调函数会被执行,参数
msg
将包含从服务器返回的响应数据(具体的格式可能取决于服务器端的设置)。
总结来说,$.getJSON()
方法用于发送 GET 请求,并期望从服务器获得 JSON 格式的响应数据。而 $.get()
方法则用于发送通用的 GET 请求,并可以接收任意格式的响应数据。选择使用哪个方法取决于对服务器响应的期望和处理需求。
$.get("findone.do", {"id": id}, function(response) {
var msg = JSON.parse(response);
或者$.getJSON("findone.do", {"id": id}, function(response)
什么是eval()方法
为什么这里就没有将其解析成json形式$.get("showplan.do",function(msg){
//alert(msg);
var events1=[];//定义日历组件需要的数据类型
eval("plan="+msg);
for(var i=0;i<plan.length;i++){
events1.push({
id:plan[i].id,
time:plan[i].detailtime,
title:plan[i].title,
start:plan[i].beginDate,
end:plan[i].endDate,
color:plan[i].color,
planContent:plan[i].planContent
});
}
callback(events1);
});
}
根据您提供的代码,使用了 eval()
方法来将从服务器返回的字符串 msg
解析为 JavaScript 对象,而不是使用 JSON.parse()
方法将其解析为 JSON 对象。
eval()
是 JavaScript 中的一个函数,它会将传入的字符串作为原始的 JavaScript 代码进行执行。在这段代码中,传入的字符串 msg
应该是一个表示 JSON 数组的字符串,通过 eval("plan="+msg)
将其解析为 JavaScript 对象 plan
。
接下来,在循环中,通过访问 plan
对象的属性,将需要的数据按照指定的格式组装成 events1
数组。最终,通过调用 callback(events1)
将数据传递给回调函数进行处理。
虽然这段代码使用了 eval()
方法来解析字符串,而不是使用标准的 JSON.parse()
方法,但在这个特定的场景下,如果可以确保 msg
字符串是一个有效且安全的 JSON 数组表示形式,那么使用 eval()
也可以正确地解析数据。
然而,需要注意的是,eval()
方法存在一些潜在的安全风险和性能问题。推荐使用标准的 JSON.parse()
方法来解析 JSON 字符串,因为它更安全、可靠,并且有更好的性能。示例代码可以改为:
javascript复制代码
$.get("showplan.do", function(msg) {
var events1 = [];
var plan = JSON.parse(msg);
for (var i = 0; i < plan.length; i++) {
events1.push({
id: plan[i].id,
time: plan[i].detailtime,
title: plan[i].title,
start: plan[i].beginDate,
end: plan[i].endDate,
color: plan[i].color,
planContent: plan[i].planContent
});
}
callback(events1);
});