2017-02-01 18 views
0

JSONArrayを2番目の最後の位置まで読み取ろうとしています。どうやってやるの?私はほとんどすべてを試しましたが、今までの結果はありませんでした。配列を(長さ - 1)の位置に読み込む

マイJSON、今、私は

for (int i = 0; i <jsonArray.length(); i++) { 
    JSONObject jsonObject1 = jsonArray.getJSONObject(i); 
} 
それはすなわち "total_percentage" も私の最後のオブジェクトを与えている

を使用する場合

[{ 
    "subject_name": "Sociology-I", 
    "total_classes": "1", 
    "total_attended": "1", 
    "percentage": "100" 
}, { 
    "subject_name": "English-I", 
    "total_classes": "37", 
    "total_attended": "36", 
    "percentage": "97.297297297297" 
}, { 
    "subject_name": "Hindi -I", 
    "total_classes": "1", 
    "total_attended": "1", 
    "percentage": "100" 
}, { 
    "subject_name": "", 
    "total_classes": "3", 
    "total_attended": "3", 
    "percentage": "100" 
}, { 
    "subject_name": "Economics II", 
    "total_classes": "1", 
    "total_attended": "1", 
    "percentage": "100" 
}, { 
    "subject_name": "History-I", 
    "total_classes": "1", 
    "total_attended": "0", 
    "percentage": "0" 
}, { 
    "total_percentage": "95.454545454545" 
}] 

...私も

i< jsonArray.length()-1 

を試してみましたが、私のために働いていない..何をするか私は "total_percentage"したくない場合。私は最後から二番目の要素まで、必要またはオブジェクト

+0

ソリューションを忘れる、あなたのJSONが適切に構造化されていません。 JSONをより良いモデルに構成することに興味があるなら、その答えを投稿することができます。 –

+0

この配列を2番目の最後の位置まで読み取ることはできませんか? –

+0

間違いなく可能です。しかし、なぜあなたは適切な解決策を持つことができるときに回避策を持っているのですか。 –

答えて

0

方法について:コードの下

for (int i = 0; i <jsonArray.length() - 1; i++) { 
JSONObject jsonObject1 = jsonArray.getJSONObject(i);} 
+0

それが機能していません。後で何もデータが得られません..ブランクスクリーン –

0

てみてください、それはあなたを助けることを願っています。

for (int i = 0; i <jsonArray.length(); i++) { 
    JSONObject jsonObject1 = jsonArray.getJSONObject(i); 
    jsonObject1.remove("total_percentage"); 
} 
+0

全く動作しませんでした。同じような状況が見つかった "ListView with 7 elements" –

1

理想的には、あなたのJSONは、

{ 
    "marks":[{ 
     "subject_name": "Sociology-I", 
     "total_classes": "1", 
     "total_attended": "1", 
     "percentage": "100" 
     },{ 
     "subject_name": "Sociology-I", 
     "total_classes": "1", 
     "total_attended": "1", 
     "percentage": "100" 
     } 
    ], 
    "total_percentage":98.4 
} 

ようにする必要があり

JSONArray marks = response.optJSONArray("marks"); 
//then iterate through marks 
//here response is your actual modified JSON 

JSONsは、その悪いモデルが総マークがでオブジェクトを持っているので、分類に応じてデータを構造化することを意図している 個々のマーク配列。あなたの問題のため

編集 - クイックフィックスソリューション - あなたの問題の1

int length = jsonArray.length() - 1; 
for (int i = 0; i < length; i++) { 
    JSONObject jsonObject1 = jsonArray.getJSONObject(i); 
} 

クイックフィックスソリューション - 2

for (int i = 0; i <jsonArray.length(); i++) { 
    Object marksObject = jsonArray.opt(i); 
    if(marksObject instanceof JSONObject){ 
     JSONObject mark = (JSONObject) marksObject; 
    } 
} 
+0

これは好きですが、今度は私を助けてください。もう+1 givento you –

+0

私はあなたのために2つの代替案を投稿しました。 –

+0

クイックフィックスno 1:動作していません..この後、データが取得されません..ブランク画面 –

関連する問題