请怎么用$.getJSON返回数据中的内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请怎么用$.getJSON返回数据中的内容相关的知识,希望对你有一定的参考价值。
数据表中某字段的内容如下:
a:4:s:8:"fromsite";s:12:"商城";s:5:"price";s:11:"999999.00";s:8:"redtitle";s:10:"最新活
动";s:5:"gobuy";s:20:"百度";
请问怎么通过$.getJSON返回 百度 呢?
是在JQuery中么?
jQuery中常用getJSON来调用并获取远程的JSON字符串,将其转换为JSON对象,如果成功,则执行回调函数。
原型如下:
jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据。
url: 发送请求的地址
data : (可选) 待发送key/value参数
callback: (可选) 载入成功时的回调函数
主要用于客户端获取服务器JSON数据。简单示例:
服务器脚本,返回JSON数据:
$.getJSON.php
$arr=array("name"=>"zhangsan", "age"=>20);
$jarr=json_encode($arr);
echo $jarr;
注意两点:
第一:在返回客户端之前,先用PHP函数json_encode将要返回的数据进行编码。
第二:返回到客户端用的是echo,而不是return。
下面是核心的客户端代码:
$.getJSON.html
代码如下:
<script language="javascript"
type="text/javascript" src="./js/jquery.js"></script>
<script
language="javascript" type="text/javascript">
function getjs()
$.getJSON("$.getJSON.php", , function(response)
alert(response.age);
);
<input type="button" name="btn" id="btn" value="test"
onClick="javascript:getjs();"/>
注意一点:
由于在PHP中是用JSON编码返回值,所以此处必须用getJSON去调用PHP文件,从而获取数据。同时可以注意到,经由getJSON得到的数据已经变成了一个对象数组,可以用response.name,response.age很直观的获取返回值。
看看这个有用没? 参考技术A $.getJSON(url,[data],[callback])
代码如下:
$.getJSON("data.php",$("#firstName.val()"),function(jsonData)
$("#getJSONResponse").html(jsonData.id);//无需设置,直接获取的数据类型为json,
所以调用时需要使用jsonData.id方式
);
无法访问$ .getJSON返回的对象的属性
我正在获取一个.json文件,并使用json
将其分配给变量$.getJSON(url);
,当我检查它时
console.log(json);
console.log(typeof json);
只是为了确保我得到这个包含大量无关数据的大对象:console.log() result 完整代码示例:
var json = 0;
function fetchJson(url){
var json = $.getJSON(url);
console.log(json);
console.log(typeof json);
for(var i in json['responseJSON']){
console.log(json['responseJSON'][i]);
}
}
fetchJson('test.json');
当我尝试在页面加载时迭代json['responseJSON']
时我除了最初的console.log()
之外什么也没有得到任何东西,但如果我在控制台中复制并粘贴它,我也得到undefined
。如果我使用
var list = "";
for(i in json['responseJSON']) {
list += json['responseJSON'][i];
return list;
}
console.log(list);
相反,它返回空字符串。
我需要的是type
objects
的pic属性值。
$.getJSON
是异步的,这意味着它正在调用服务器,而你无法预测该响应何时会回来。请查看jQuery的文档,其中显示了如何提供一个回调函数,该函数将在请求完成并收到响应时运行:
http://api.jquery.com/jquery.getjson/
function fetchJson(url){
var json = $.getJSON(url, function(json) {
// this will run after the response is received.
console.log(json);
console.log(typeof json);
for(var i in json['responseJSON']){
console.log(json['responseJSON'][i]);
}
});
}
getJSON不直接返回JSON。这是异步的。您传递一个函数,该函数在返回数据时稍后调用。
http://api.jquery.com/jquery.getjson/
以上是关于请怎么用$.getJSON返回数据中的内容的主要内容,如果未能解决你的问题,请参考以下文章
Ajax和getjson为啥在ie浏览器不同版本中显示不同的数据