json字符串的理解

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 请求的方法,但它们在使用方式和返回结果方面略有不同。

  1. $.getJSON("findone.do",{"id":id},function(msg)

    • $.getJSON() 是一个简便的方法,用于发送 GET 请求并期望服务器返回 JSON 数据。
    • "findone.do" 是请求的 URL,{"id":id} 是作为请求参数发送给服务器的数据,function(msg) 是接收响应数据并进行处理的回调函数。
    • 在成功获取到服务器响应后,回调函数会被执行,参数 msg 将包含从服务器返回的 JSON 数据。
  2. $.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);
});

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值