Php json jquery问题

Php json jquery问题,php,jquery,json,Php,Jquery,Json,我用它从json格式的ajax jquery中获取信息,但它给了我错误 像这样0=[对象] $.getJSON("ajax_files/getSingleRow.php?id="+id+"&type="+type, function(json){ $.each(json, function(key, val) { //$("#"+key).val(val); alert(k

我用它从json格式的ajax jquery中获取信息,但它给了我错误 像这样0=[对象]

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

[{"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);

严格来说,这不是一个错误,这是一个对象。它可能包含错误,谁知道呢。但是这个东西本身是一个等待访问的东西(即
val
的值),它本身没有任何错误


尝试访问成员,输出
id
name
,等等,而不是仅仅在警报中转储内容。

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

当您在其上循环时,将获得数组的第一个键(
0
),然后是对象的字符串序列化(
[object object]
)。然后它停止,因为数组中只有一个条目

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

您可能希望在对象上循环,在这种情况下:

var ob = json[0];
$.each(ob, function(key, val) {
试试这个:

$.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);
        });
    });
});

您的JSON字符串被包装在一个数组中
[{}]
将“
[
”和“
]
”保留在外。

读取JSON集合项的属性值

 $.each(json, function(key, item) {
     alert(key+'='+item.id);
     alert(key+'='+item.ref);
     alert(key+'='+item.description_demo);
 });
假设您的页面中没有其他脚本错误,这应该可以正常工作


工作示例:

为什么您认为这是一个错误?您的json是一个包含一个元素的数组,该元素是一个对象。要查看您收到的数据,请执行
alert(json)
。@asifsid88该
alert()
函数对于调试和显示信息来说非常糟糕,正如他们刚刚发现的那样,因为它不显示对象的属性。