2012-12-27 16 views
0

使用JSON解析器傑森,但我不添加多個標籤值到ArrayList和我想和演員來解析$ T標籤進入arraylist.such作爲JSON分析器問題,讓所有的演員值到ArrayList中

{ 
"media$group":{ 
"media$credit":[ 
{ 
"$t":"Murison Dunn", 
"role":"Writer", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Randolph Scott", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Forrest Tucker", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"name":"Mala Powers", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"J. Carrol Naish", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Edgar Buchanan", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"name":"Myron Healey", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Howard Petrie", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"name":"Ray Teal", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"William Forrest", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Denver Pyle", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Trevor Bardette", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Kenneth Tobey", 
"role":"Actor", 
"scheme":"urn:ebu" 
} 
] 
}, 

{ 
"media$group":{ 
"media$credit":[ 
{ 
"$t":"Murison", 
"role":"Writer", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Scott", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Tucker", 
"role":"Actor", 
"scheme":"urn:ebu" 
} 
{ 
"name":"Powers", 
"role":"Actor", 
"scheme":"urn:ebu" 
} 
] 
}, 

{ 
"media$group":{ 
"media$credit":[ 
{ 
"$t":"Dunn", 
"role":"Writer", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"J.Naish", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Buchanan", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Healey", 
"role":"Actor", 
"scheme":"urn:ebu" 
}, 
{ 
"$t":"Petrie", 
"role":"Actor", 
"scheme":"urn:ebu" 
} 
] 
} 
} 

但是我的主要問題是我需要從$ t標籤中獲取多個項目到arraylist中。和我的代碼是:

JSONObject jsonmediagrop=videoObject.getJSONObject("media$group"); 
JSONArray itemsmediarole = jsonmediagrop.getJSONArray("media$credit"); 
      for(int l=0;l<itemsmediarole.length();l++){ 
       JSONObject Objectrole = itemsmediarole.getJSONObject(l); 

       strrole=Objectrole.getString("Role"); 
       Log.v("Role", strrole); 

       if(strrole.equals("Actor")) 
       { 

        stractor=Objectrole.getString("$t") + "," + stractor; 
        Log.v("stractor", stractor); 
        maprole.put("$t", stractor); 
        myrolelist.add(maprole); 
       } 

      } 

myrolelist -this是arraylist。 maprole - 這是散列表。 任何幫助表示讚賞。

+0

你所面對的問題目前? –

+0

json數組無效 – raju

+0

當我將json數組中的所有actor添加到數組列表中時,發現第一個數組中的所有值都爲12個演員姓名,第二個爲12 + 3 = 15個演員,第三個爲15 + 4 = 19但我想進入陣容表第一名有12名,第二名有3名和3名只有4名演員名。這是我的問題兄弟。 – vabhavsingh

回答

2

好的,在閱讀其他答案的評論後,我決定幫助你。
我也有很多解析我的問題。通過大量的研究
在我的代碼中,我試圖得到rstp url links
我希望你能看看它並解決你的問題。
這是我工作的代碼

try { 
     JSONObject obj = new JSONObject(json); 
     String entry = obj.getString("entry"); 
     JSONObject enObj = new JSONObject(entry); 
     String group = enObj.getString("media$group"); 
     JSONObject grObj = new JSONObject(group); 
     String content = grObj.getString("media$content"); 
     JSONArray array = grObj.getJSONArray("media$content"); 
     for(int j=0; j<array.length(); j++){ 
      JSONObject thumbs = array.getJSONObject(j); 
      String url = thumbs.getString("url"); 
      urls[j] = url; 
      Log.d(TAG, url); 
      //data.setThumbUrl(thumbUrl); 
     } 


     Log.v(TAG, content); 
    } catch (Exception e) { 
     Log.e(TAG, e.toString()); 
    } 

對於你這個可以做的伎倆:

try { 
     JSONObject obj = new JSONObject(json); 
     String entry = obj.getString("entry"); 
     JSONObject enObj = new JSONObject(entry); 
     String group = enObj.getString("media$group"); 
     JSONObject grObj = new JSONObject(group); 
     JSONArray array = grObj.getJSONArray("media$credit"); 
     for(int j=0; j<array.length(); j++){ 
      JSONObject credits = array.getJSONObject(j); 
      String role = credits.getString("role"); 
      Log.d(TAG, role); 
     } 

    } catch (Exception e) { 
     Log.e(TAG, e.toString()); 
    } 
+0

thanx for response bro.but我想要$ t標籤中的所有演員姓名 – vabhavsingh

0

您的JSON無效。當我向下滾動你的JSON列表時,你已經定義了相同名稱的數組。這就是爲什麼它正在考慮關鍵「角色」的多重價值。

+1

http://gdata.youtube.com/feeds/api/charts/movies/most_recent?v=2&start-index=1&max-results=5&paid-content=false&hl= en&movie-genre = 1&alt = json。這就是youtube api webserivice,我想要所有演員的名字都來自媒體$ group標籤 – vabhavsingh

+0

你的JSON沒關係。 Lazy Ninja已經爲你發佈了代碼。它將按照您的JSON完美工作。爲他+1。 – Rohit

+0

兄弟我想要所有的$ t值進入相關的角色標籤 – vabhavsingh