jQuery ajax 怎么处理返回的 json 数据?

发布于 2022-09-04 02:51:10 字数 270 浏览 18 评论 0

要是在php返回一个

echo { name:"yxl", age:4};

在jQuery处理的时候,怎么写呢?
是下面这样写吗?


$.get('.php',{:''},F ,'json');    //★★这里我直接写'json' 对吗?

function F(result , success , xhr)
{
    alert( result.name );   //★★这里是这样调用吗?
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

温柔女人霸气范 2022-09-11 02:51:10

后端返回的是一个json字符串,而不是对象。使用JavaScript原生的JSON.parse方法把json字符串解析为对象,就可以用了。

两仪 2022-09-11 02:51:10

jquery的ajax回调函数的返回值时有规律的:

clipboard.png

我推荐你看一下JavaScript权威指南第19章第6节:jquery中的ajax。
虽然书上面说的jquery版本有点老(1.3)。但是ajax那块的原理说的还是比较透彻的。

可爱暴击 2022-09-11 02:51:10

如果返回的是json对象的话,是可以result.name。如果返回的是json字符串的话,需要转化成json对象来操作。
转化方式,有三种第一,eval(不推荐),第二,jquery的parseJSON(建议),第三,JSON.parse(推荐)

萌无敌 2022-09-11 02:51:10

代码如下:

js

$.ajax({
            type: 'get',
            url: '.php',
            data: {},
            async: true,
            dataType: 'json',
            success: function (m, status, xhr) {
                try { // 避免eval产生的报错
                   console.log(m.name + '   ' + m.age); // 对象时
                   console.log(eval('(' + m + ')').name + '   ' + eval('(' + m + ')').age); // json字符串时
                }  catch(e) {
                    console.log('err: ' + e + ' data: ' + e.data);
                }
            },
            error: function(xhr, status, error) {
                console.log('xhr.status: ' + xhr.status + ' status: ' + status);
            }
        });
冷心人i 2022-09-11 02:51:10

如果直接知道是json的话可以使用$.getJSON(url,fn);比较方便,直接帮你转换了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文