1

我正在使用它从 ajax jquery 在 json 格式中获取信息,但它给了我这样的错误 0 =[object object]

$.getJSON("ajax_files/getSingleRow.php?id="+id+"&type="+type, function(json){ 
                 $.each(json, function(key, val) {
                    //$("#"+key).val(val);
                    alert(key+'='+val);
                 });
                 });

这是我的 josn 字符串

[{"id":"1","ref":"RH-R-1","name":"","description_demo":"this is desc test"}]

谢谢大家......这是我的json如何发展

  while($rw = $oAppl->row($res))
{
 $return[]=array('id'=>$rw['id'],
                'ref'=>$rw['ref'],
                'name'=>$rw['name'],
                'description_demo'=>$rw['description_demo']);
}

    header('Content-type: application/json');
   echo json_encode($return);
4

5 回答 5

2

JSON 文本由一个包含对象的数组组成。

当你遍历它时,你会得到数组的第一个键 ( 0),然后是对象的字符串序列化 ( [Object object])。然后它停止,因为数组中只有一个条目。

不是错误。鉴于您输入的数据,这是预期的行为。

可能您想要循环遍历对象,在这种情况下:

var ob = json[0];
$.each(ob, function(key, val) {
于 2013-03-04T12:44:16.393 回答
0

这不是一个错误,严格来说,它是一个对象。它可能包含一个错误,谁知道呢。但是事物本身是一个等待被访问的事物(即 的值val),它本身并没有什么错误。

尝试访问成员,输出id,name等,而不是仅仅将事物转储到警报中。

于 2013-03-04T12:43:18.130 回答
0

尝试这个:

$.getJSON("ajax_files/getSingleRow.php?id=" + id + "&type=" + type, function (json) {
    $.each(json, function (key, val) {

        // This will only give you the 'ref' value
        alert(key + '=' + val.ref);

        // To loop through all the values
        $.each(val, function (key2, data) {
            alert(key2 + ": " + data);
        });
    });
});

在这里演示

于 2013-03-04T12:45:52.360 回答
0

您的 JSON 字符串包含在一个数组中。[ {} ]把 " [" 和 " ]" 去掉。

于 2013-03-04T12:46:00.200 回答
0

读取 JSON 集合项的属性值。

 $.each(json, function(key, item) {
     alert(key+'='+item.id);
     alert(key+'='+item.ref);
     alert(key+'='+item.description_demo);
 });

假设您的页面中没有其他脚本错误,这应该可以正常工作。

工作样本:http: //jsfiddle.net/a4Efx/4/

于 2013-03-04T12:48:20.387 回答