2011-09-30 21 views
0

私の問題はJSON文字列の構造によるものと思われます。 JSONオブジェクト内にJSONオブジェクトがあるようです。[オブジェクトオブジェクト]を返すjQueryでJSONを解析できません

これは私の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"}} 

は、このオブジェクトです::

あなたが $('#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"}} 
] 

:私はあなたの要素は以下のように適切に閉じられているという仮定に行きますよ

{"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'オブジェクトは' subject'のキーでobjにラップされていると仮定します。 ..name ...] 'の代わりに' subject [... name ...] ' – zzzzBov

+0

それは本当です、愚かです。私は携帯電話に乗っていて、画面が限られています。 zzzzBovに感謝してくれてありがとう。 – sepidol

関連する問題