json jquery issue


json jquery issue

我用这个从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);
JSON文本由一个包含对象的数组组成。

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

这不是一个错误。考虑到您输入的数据,这是预期行为。

可能你想在对象上循环,在这种情况下:

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

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

尝试访问成员,输出idname等,而不是将其转储到警报中。

试试这个:

$.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字符串被封装在一个数组中。[ {} ]去掉"["answers"]"。

读取JSON集合项的属性值。

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

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

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