2017-04-26 10 views
0

私のオンラインビデオライブラリで高度な検索機能を使用しています。 JSONファイルオブジェクトmovies_objectからムービーに関する情報を取得し、ディレクター、映画名、国、俳優の名前を検索するとうまくいきます。私の問題は、私がジャンルを探しているときです。ジャンルは、別々のJSONファイルオブジェクトgenres_objectに格納されます。JSONからキーを検索し、他のJSONオブジェクトの値と比較します。

私の問題は、genres_objectでキー名を見つける方法を見つけることができないということです!私は値を持っていますが、どのようにキーを見つけるのかわかりません。私はこれをして、適切なジャンルが正しい映画になるようにしなければなりません。ここで

は、高度な検索

function advanced_search(){ 
var genres = genres_object; 
var searchParameters = get_query_string_parameters(); 

for(movies in movies_object){ 
var found1 = false; 
var found2 = false; 
var found3 = false; 
var found4 = false; 
var found5 = false; 

var id = movies_object[movies].id; 


if(movies_object[movies].otitle.toLowerCase() == 
searchParameters.film_title.toLowerCase() || 
isEmpty(searchParameters.film_title)) { 
found1 = true; 
} 

if(movies_object[movies].folk) { 
if(movies_object[movies].folk.toLowerCase().includes(searchParameters.actor.toLowerCase()) || isEmpty(searchParameters.actor)) { 
found2 = true; 
} 
} 

//This is the part I'm having trouble with 
if(genres_objects[movies] == movies_object[movies].id){ 
    for(var i = 0; i < genres_object[movies].length; i++){ 
if((genres_object[movies[i]]).includes(searchParameters.genre.toLowerCase())){ 
found5 = true; 
} 
} 
} 


if(found1 && found2 && && found5) { 
console.log(movies_object[movies]); 
results.push(movies_object[movies]); 

} 
display_X(results); 
} 
} 

のための私のjavascript関数であり、ここでJSONムービーオブジェクトのためのフォーマットです:

movies_object={"1080": {"year": 1957, "otitle": "Ni liv", "youtube trailer id": "", "ntitle": "Ni liv", "mod_date": null, "length": 91, "id": 1080, "keywords": null, "reg_date": null, "description": "Jan Baalsrud er p\u00e5 et sabotasjeoppdrag fra England til Norge med 11 a", "dir": "Arne Skouen", "etitle": "Nine Lives", "country": "NOR", "imdb_id": "", "folk": "Jack Fjeldstad, Henny Moan, Lydia Op\u00f8ien, Edvard Drabl\u00f8s"}, 

最後に、JSONジャンルのフォーマット: genres_object = { "3734":["komedie"]、 "3724":["sci-fi"]、

ありがとうございます!

+0

http://benalman.com/news/2010/03

for (var key in genres_objects) { console.log(key); } 

または

// incase genres_objects[movies] returns JSON object for (var key in genres_objects[movies]) { console.log(key); } 

希望を使用してJSONオブジェクトのキーを反復処理することができます/ theres-no-such-as-a-json/ – Quentin

答えて

0

あなたは簡単にこのことができます:)

+0

http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/ – Quentin

+0

同意してください!しかし、Javaは私たちにすべてをオブジェクトとして考えるようにしました:) – rahulb

+0

これはJavaではなく、オブジェクトであり、ここにはJSONはありません。 – Quentin

関連する問題