2017-02-24 5 views
0

これは私がやろうとしていることはミュージック・ビデオのID = 303または他のいくつかの数idが特定の数に等しくなるまで、Json Arrayをループする方法はありますか?

{ 
     musicVideos:[ 
      { 
      id:303, 
      youtubeVideoUrl:"https://www.youtube.com/watch?v=cvvcbcv", 
      prettyVideoTitle:"Pretty Title", 
      youtubeVideoTitle:"Crap Title", 
      youtubeThumbnail:"https://image.com", 
      thingsAboutTheVideo:[ 
       { 
        id:368, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       }, 
       { 
        id:538, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       }, 
       { 
        id:539, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       }, 
       { 
        id:540, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       } 
      ] 
      }, 
      { 
      id:302, 
      youtubeVideoUrl:"https://www.youtube.com/watch?v=", 
      prettyVideoTitle:"Tcbcvbcv", 
      youtubeVideoTitle:"xcvcx", 
      youtubeThumbnail:"http://www.google.com/image", 
      thingsAboutTheVideo:[ 
       { 
        id:64, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       }, 
       { 
        id:535, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       }, 
       { 
        id:536, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       }, 
       { 
        id:537, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       }, 
       { 
        id:541, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       }, 
       { 
        id:542, 
        name:"Some Name", 
        facebook:"", 
        twitter:"", 
        instagram:"", 
        imdb:"", 
        website:"", 
        info:"", 
        image:"", 
        time:"" 
       } 
      ] 
      } 
     } 

これは私が今持っているものであればthingsAboutTheVideoの配列を取得している私のJSON、ある

for(int 1 = 0; i<jsonObject.length(); i++){ 
    JsonObject ob = jsonObject.getJsonObject(i); 
    JSONArray aboutVideo = ob.getJsonArray("thingsAboutTheVideo"); 
    for(int j = 0 <aboutVideo.length(); j++){ 
     JsonObject objectTwo = aboutVideo.getJsonObject(j); 
    } 
} 

どの種類の作品が動作しますが、2番目のものを表示しようとすると、何も表示されず、アプリケーションがクラッシュする場合があります。id == 303何も表示されない場合は何も表示されません。

+0

あなたはあなたのコードが動作しない、よくこれに答えるために、なぜ、私たちはスニペットを超えるとあなたの全体のコードよりも少ないを見たいと思ってます求めている:[MCVEを作成し、掲示を検討]あなたの質問に完全に。この便利なツールの詳細については、リンクをお読みください。 –

+0

この回答を確認するhttp://stackoverflow.com/questions/30757085/how-to-loop-and-get-the-specific-value-of-the-json-object-how-can-i-use-that- js – Boris

答えて

0

あなたのforループのポイント? jsonObject.length()とはなんですか?私はそれが最初のmusicVideos配列インデックス内で始まると思う。それはあなたがその一つのオブジェクトの情報しか得ることができないことを意味します。とにかく、地上から、それは(org.jsonを使用して)いくつかの洞察を提供願っています:

//content is a String containing the JSON Object you posted here (with an extra ]).  
JSONArray musicVideosArray = new JSONObject(content).getJSONArray("musicVideos"); //We are only interested in the array 
for (int i = 0; i < musicVideosArray.length(); i++) { //For each object in the array 
    JSONObject musicVideo = musicVideosArray.getJSONObject(i); 
    //You can already retrieve ID's here if that's all you're interested in: 
    //int musicVideoID = musicVideo.getInt("id"); 
    //if (musicVideoID == 303) {//Do whatever} 
    JSONArray aboutTheVideoArray = musicVideo.getJSONArray("thingsAboutTheVideo"); //Get the 'things' array containing ID's 
    for (int j = 0; j < aboutTheVideoArray.length(); j++) { 
     JSONObject aboutTheVideo = aboutTheVideoArray.getJSONObject(j); 
     System.out.println("Object " + (j+1) + " of parent object " + (i+1) + ", ID: " + aboutTheVideo.getInt("id")); 
     //Do whatever 
    } 
} 

私はまた、あなたが]が欠落している、あなたはここに掲載JSONオブジェクトが完全に有効ではないことに注意したいと思います文字を入力してmusicVideos配列を閉じます。

enter image description here

+0

すごくうれしかった! – knight

関連する問題