2011-09-30 108 views
0

我怀疑我的问题是由于我的JSON字符串的结构。它似乎在JSON对象中有一个JSON对象。无法用jQuery解析JSON,返回[object Object]

这是我的JSON格式:

[ 
{"subject":{"title":"java","id":"1","desc":"Basic java programming"}, 
{"subject":{"title":"objective c","id":"2","desc":"Introduction to objective c"} 
} 

这是我的jQuery代码:

var items = []; 

    $.getJSON('theurl', function(data) { 

     $.each(data, function(key, subject) { 
      alert(subject); //returning me "[object Object]" 
      $('#tempresult').append('<p>'+ subject +'</p>'); //returning me "[object Object]" 
     }); 
    }); 
+0

这看起来正确根据你的对象。你想要什么? – gilly3

回答

3

您已经发布了一些畸形的JSON。我要去你的元素被正确关闭的假设:

[ 
    {"subject":{"title":"java","id":"1","desc":"Basic java programming"}}, 
    {"subject":{"title":"objective c","id":"2","desc":"Introduction to objective c"}} 
] 

它看起来像你想$('#tempresult').append('<p>'+ subject.subject.desc +'</p>');

data[0]是这样的对象:

{"subject":{"title":"java","id":"1","desc":"Basic java programming"}} 

是这个对象:

{"subject":{"title":"objective c","id":"2","desc":"Introduction to objective c"}} 

data[0].subject是此目的:

{"title":"java","id":"1","desc":"Basic java programming"} 

data[0].subject.desc是这样的:

"Basic java programming" 
+0

感谢您的详细解释@zzzzBov! – tommi

1

你的示例JSON是有点成形差(缺少})。

否则,试试这个:

$.each(data, function(key, subject) { 
    alert(subject.subject.title); 
}); 

http://jsfiddle.net/7xMJP/

1

你的主题变量是一个JSON对象。 您必须指定对象的属性来获取值

alert(subject.subject.id); alert(subject.subject.title); Alert(subject.subject.desc);

+0

我起初犯了同样的错误,但考虑到他格式不正确的JSON,我认为'title,id,desc'对象被包装在一个obj中,并带有'subject'的键:你需要'subject.subject [。 ..name ...]'而不是'subject [... name ...]' – zzzzBov

+0

这是真的,我很傻。我在手机上,屏幕有限。谢谢你zzzzBov注意到我。 – sepidol

相关问题