0

私のサイトから Json 応答があり、その応答を解析します。この解析データを問題なく画面に書き込むことはできますが、2 次元配列を割り当てたいときに NullPoniterException エラーが発生します。

私はこのように配列とjsonarrayとjsonobjectを定義しました...

final String[][] sonuclarDizi = null;
    String kayitSayisi = jObj.getString("kayitSayisi");
 int kayitsay = Integer.parseInt(kayitSayisi.toString());
 JSONArray menuitemArray = jObj.getJSONArray("sonuclar");


for (int i = 0; i < kayitsay; i++) {
                                System.out.println(i+". sonucun sube id si "+menuitemArray.getJSONObject(i).getString("sube_id"));
                                System.out.println(i+". sonucun ders_id si "+menuitemArray.getJSONObject(i).getString("ders_id"));
                                System.out.println(i+". sonucun kodu si "+menuitemArray.getJSONObject(i).getString("kodu"));
                                System.out.println(i+". sonucun adi si "+menuitemArray.getJSONObject(i).getString("adi"));
                                System.out.println(i+". sonucun ortalama_yazi si "+menuitemArray.getJSONObject(i).getString("ortalama_yazi"));
                                System.out.println(i+". sonucun sube id si "+menuitemArray.getJSONObject(i).getString("kredi"));
                                System.out.println(i+". sonucun devamDurumu si "+menuitemArray.getJSONObject(i).getString("devamDurumu"));
                                System.out.println(i+". sonucun sube id si "+menuitemArray.getJSONObject(i).getString("ortalama"));
                                System.out.println(i+". sonucun sonuc si "+menuitemArray.getJSONObject(i).getString("sonuc"));
                                System.out.println(i+". sonucun sube id si "+menuitemArray.getJSONObject(i).getString("basarili"));
                                System.out.println(i+". sonucun harf si "+menuitemArray.getJSONObject(i).getString("harf"));
                            } 

この部分は機能しています。ただし、以下の部分では NullPointerException エラーが返されます。

for (int i = 0; i < kayitsay; i++) {
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("sube_id"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("ders_id"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("kodu"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("adi"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("ortalama_yazi"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("kredi"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("devamDurumu"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("ortalama"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("sonuc"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("basarili"));
                                sonuclarDizi[i][1]=(menuitemArray.getJSONObject(i).getString("harf"));
                            }

どうもありがとう...

4

1 に答える 1

0

sonuclarDiziヌル配列です。宣言しましたが、項目を追加する前にインスタンス化する必要があります。

String[][] sonuclarDizi;

sonuclarDizi = new String[kayitsay][];

for (int i = 0; i < kayitsay; i++) {
  sonuclarDizi[i] = new String[11];
  /* ... */
}
于 2013-03-29T14:02:40.983 に答える