2012-04-22 13 views
3

私はjsonフィードの配列を持っていますが、jArrayにはリーグが1つありますが、後でフィードに秒が追加されたときにその配列のカウントを計算する必要があります。現時点では、log catは "teamFeedStructure"をログアウトしていません。誰かが私が間違っていることを知っているのですか?または、配列の長さをインテントで使用できる文字列に正しく変換する方法を知っていますか?アンドロイドJSONArrayの長さ

HERESにコード

JSONObject obj = new JSONObject(json); 
JSONObject objData = obj.getJSONObject("data");      
JSONArray jArray = objData.getJSONArray("structure"); 
//String leagues = jArray.toString(); 
//Log.v("myapp", "structure" + leagues); 
for (int i=0; i < jArray.length(); i++) {  
    JSONObject oneObject = jArray.getJSONObject(i); 
    leaguecountArray = oneObject.getJSONArray("league_id"); 
    for (int l=0; l < leaguecountArray.length(); l++) {  
     if (leaguecountArray.length() == 1) { 
      teamFeedStructure = "One"; 
     } 
     if (leaguecountArray.length() == 2) { 
       teamFeedStructure = "Two"; 
     } 
     Log.v("myapp", teamFeedStructure); 
     } 
} 

答えて

1

あなたがここに反復しなければならないのはなぜ:

for (int l=0; l < leaguecountArray.length(); l++) 
{  
    if (leaguecountArray.length() == 1){ 

     teamFeedStructure = "One"; 
    } 
    if (leaguecountArray.length() == 2){ 

     teamFeedStructure = "Two"; 
    } 
    Log.v("myapp", teamFeedStructure); 
} 

ネヴァーマインドあなたはどのように多くのパスが、結果は同じになります。

英語以外の単語を使用することもできますが、必要な番号を保持するのはStringです。次のようになります。

teamFeedStructure = String.valueOf(leaguecountArray.length()); 

次に、値は"2"になります。あなたの他のアクティビティでは、そのように整数に再びそれを解析することができます:int number = Integer.parseInt(teamFeedStructure);

+0

ログアウトしていないタグが設定されています。なぜログに記録されないのか混乱しています。 – iamlukeyb

+0

冗長レベルを監視していますか?また、あなたの配列が空の場合、ロギングは起こりません。配列の長さを記録して、それが本当に空であるかどうか確認してください –

0

あなたが大きいメッセージが出た場合は次の行に

if (leaguecountArray.length() == 1){ 

teamFeedStructure = "greater two"; 

を追加し、あなたの配列を意味し、 2つ以上の長さ。

0

あなたの助けてくれてありがとう、誰も私は私がLogcatで何も得ていなかった理由であるフィードにあまりにも遠すぎるステップを行ったことを発見した。今それはいいと数えています。

+0

これが問題の解決策だった場合は、質問の横にある目盛りを使って「受け入れ」とマークする必要があります。あなたが他の2つのポスターの回答のうちの1つを使ってそれを解決したら、その答えを代わりに受け入れるべきです。 –