在javascript中显示对象

时间:2012-11-16 14:47:36

标签: php jquery ajax json

我写一个脚本来进行ajax调用,这是我的代码

function ajax_post(obj) {
    obj = '#'+ obj; 

    var formData = $(obj).serializeArray();    

    $.ajax({
        url: '__core/info.php',
        type:'get',
        dataType: 'json',
        data: formData,
        success: function(resp){
            alert(resp);
        }
    })
}

这是我的info.php

$last_Res = theme::get_last_themes_desk(); //$last_Res is an array 
echo(json_encode($last_Res));

但是当它发出警报时显示返回对象对象.....如果数据类型是json我应该怎么办我应该将它转换为另一种格式? $ last_Res是一个数组

3 个答案:

答案 0 :(得分:3)

响应您的评论(显示响应数据,这是一个包含单个对象的数组):

//resp = [{"id":"2","name":"babak_theme","sh_describ":"support css3 and ie 9 ","rate":"3","time":"2"}];
resp = resp[0];
alert('id => ' + resp.id + ', Name => ' + resp.name);//etc...

会很好地为你服务......

$last_Res很可能是关联数组。 JS没有关联数组,但将它们转换为对象/对象文字:

//php:
$foo = array('foo' => 'bar');
//in JS:
var foo = {foo: 'bar'};
alert(foo);//alerts [object Object]
console.log(foo);//shows you what properties/prototypes/methods the object has

这就是全部。要访问数据:

for (var prop in resp)
{//for "assoc arrays"
    if (resp.hasOwnProperty(prop))
    {
        alert(prop + ' => '+resp[prop]);
    }
}
for (var i=0;i<resp.length;i++)
{//for regular arrays
    alert(i + ' => ' + resp[i])'
}

答案 1 :(得分:1)

在您的info.php中,您应该将Content-Type标题设置为application/json以指明您要返回的内容:

header('Content-Type: application/json');

答案 2 :(得分:0)

你还没有发布json格式。通常你可以访问resp。像这样的价值观:

如果json格式为:

data['index']['subindex1'] = 'value1'
data['index']['subindex2'] = 'value2'

你可以

alert(resp.index.subindex1);