2012-02-21 5 views
2

私はJSONと非常に混同しています。私は簡単に第1レベルの配列値を取ることができますが、サブに問題があります。JSONサブアレイを取得する

私は$ .getJSONとコードを使用しています

$.getJSON('http://www.authenticjobs.com/api/?api_key=4c4f1d5934d66ca872dfa2a0cfd3a20b&method=aj.jobs.search&perpage=3&format=json&callback=?', function(data) { 
var listings = "";  

$.each(data.listings.listing, function(index, listing) { 

    listings += "<li><strong>" + listing.company.name + "</strong> needs a <a href='" + listing.url + "'>" + listing.title + "</a>"; 

     if (listing.location != "") { 
      listings += " in " + listing.location; 
     } 

    listings += "</li>"; 

}); 

$("#authentic-jobs ul").append(listings); 

}); 

ビジュアルデータはここにあるさ:http://cloud.ignatynikulin.com/2v0F2p2x111r0X3k4441

私は会社のロケーション名を取得することはできません。

私はlisting.company.location.nameを試しましたが、動作していないし、意味をなさないものです。

ありがとうございました!

回答は(あなたにGregLに感謝)となります。

listing.company.locationは(あなたが添付写真の {}により可視化)ネストされたオブジェクトであるので、あなただけかどうかを確認したいので、 オブジェクトは、未定義、nullなどのようなものではありません( はJavascriptで「偽の値」と呼ばれています)。

+0

は、あなたのアレイが形成される様子を投稿することができますか?私はあなたのイメージを見ることができません。 –

+1

'listing.company.location.name'はあなたのスクリーンショットによると正しいでしょう。 –

答えて

1

私は、hereが動作するjsFiddleを作成したと思います。

キーが使用することです。

if (listing.company.location) { 
     listings += " in " + listing.company.location.name; 
    } 
+0

ありがとうございます、私は場所の中にデータがあるかどうかチェックする必要があると思っていました!= ""。 – ignaty

+0

@ignaty 'listing.company.location'はネストされたオブジェクト(添付した写真の' {} 'で可視化されている)であるため、オブジェクトが未定義、ヌル、または同様のもの(Javascriptでは "偽りの値"と呼ばれています)。 – GregL

+0

私は、jQueryの代わりにプレーンなJavascriptを学び始めるべきだと思います。私たちはまだここで話しているので、それのための良い本。ありがとうございました! – ignaty

0
listings += " in " + listing.company.location.name; 
関連する問題