为了账号安全,请及时绑定邮箱和手机立即绑定

请问Ajax(从json中提取数据)?

/ 猿问

请问Ajax(从json中提取数据)?

慕斯卡3215842 2019-08-20 14:06:05

Ajax(从json中提取数据)


查看完整描述

4 回答

?
倚天杖

{name:'平凡的世界',author:'路遥'} 这是你服务器端返回的json字符串数据,那么你客户端你要怎么用呢,eval就是把一个字符串执行下,让普通的字符串变成一个对象(好像说得不是很贴切),就是普通字符执行后,里面的东西会变成可以直接使用的代码:如日期对象,数组。。。
eval("var movie = " +result); 这句意思就是把字符串变成可以直接使用的对象
执行后就相当于
var movie={name:'平凡的世界',author:'路遥'};把json对免赋值给movie变量

查看完整回答
反对 回复 2019-08-24
?
森栏

该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。


查看完整回答
反对 回复 2019-08-24
?
茅侃侃

首先要明白ajax的基本格式,参考下面的内容,可以发现,success是请求成功后服务器返回的数据,接收只需要把回调函数的值处理就可以了,如:

response:即为服务器返回的数据,{"uid":123,"name":"jghdream"},

输出如下:

123456....success: function(response){        console.log(response.uid);        console.log(response.name);}.....

以下是ajax的一些参数: 

12345678$.ajax({     type:'post',    url:'/testajax.php',    dataType:'json',    data:{uid:uid,rands:Math.random()},    success: function(){        alert('ajax return success');}});

url,类型:String,默认值: 当前页地址。发送请求的地址

data, 类型:String,发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'

dataType,类型:String,预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

"xml": 返回 XML 文档,可用 jQuery 处理。

"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。

"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)

"json": 返回 JSON 数据 。

"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

"text": 返回纯文本字符串

success,当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。


查看完整回答
反对 回复 2019-08-24
?
汪汪一只猫

JSONArray json = JSONArray.fromObject(models); //list集合数据转json
response.getWriter().println(json);//传到前台
//ajax
success: function(data){
var models = eval("("+data+")");
var rows="";
for(var i in models){
rows =rows + "<tr>"+
"<td>"+models[i].statDate+"</td>"+
"<td>"+models[i].endDate+"</td>"+
"<td>"+models[i].name+"</td>"+
"</tr>" ;
}
$("#show_table").append(rows);//添加到table
PS:这是Servlet的写法



查看完整回答
反对 回复 2019-08-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信