请怎么用$.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中么?
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);

相反,它返回空字符串。

我需要的是typeobjectspic属性值。

答案

$.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返回数据中的内容的主要内容,如果未能解决你的问题,请参考以下文章

$.getJSON JSONP的新坑

尽管成功,$.getJSON 没有返回任何内容

如何使用getJSON,用post方法发送数据?

Ajax和getjson为啥在ie浏览器不同版本中显示不同的数据

NodeJS 不会将数据返回给 jQuery.getJSON

$.getJSON 在 IE8 中返回缓存数据