我用这个从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);
当您在它上循环时,您会得到数组的第一个键(0
(,然后是对象的字符串序列化([Object object]
(。然后它停止,因为数组中只有一个条目。
这不是一个错误。考虑到您输入的数据,这是预期行为。
可能你想在对象上循环,在这种情况下:
var ob = json[0];
$.each(ob, function(key, val) {
严格来说,这不是错误,而是一个对象。它可能包含一个错误,谁知道呢。但这个东西本身就是一个等待访问的东西(即val
的值(,它本身没有任何错误
尝试访问成员,输出id
、name
等,而不是将其转储到警报中。
试试这个:
$.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/