2015-05-09 93 views
0

我嘗試了所有我能想到的,我誠實地出於想法。請提供可能的提示。努力填充多維數組

基本上我創建了一個字符串數組,並有一個2-D數組,我試圖用for循環中的其他數組填充。發生什麼事是當程序到達第二個循環就停止。沒有任何反應,我無法弄清楚爲什麼!

我已經嘗試了幾個變化中的循環以及手動填充它,但每次都發生同樣的事情。

我需要的:

array[][] = {[], [], []} 

我得到什麼:虛無縹緲

public void getEwonData(String data) 
{ 
    JsonParser parser = new JsonParser(); 

    try 
    { 
     Object obj = parser.parse(data); 
     JsonObject jsonObj = (JsonObject)obj; 
     JsonArray arr = jsonObj.get("ewons").getAsJsonArray(); 
     String[][] array = null; 
     for(int i = 0; i < arr.size(); i++) 
     { 

      JsonObject p = (JsonObject) arr.get(i); 
      JsonElement varName = p.get("name"); 
      JsonElement varStatus = p.get("status"); 
      JsonElement varDesc = p.get("description"); 

      String[] varInfo = {varName.toString(), varStatus.toString(), varDesc.toString()}; 


      //This is where it stops. 
      for(int x = 0; x <= varInfo.length - 1; x++) 
      { 
       array[i][x] = varInfo[x]; 
      } 
      //I can't get here! 
     } 

    } 

我誠實的想法和將是任何幫助荒唐讚賞。

+1

你可以發佈你傳遞給方法的數據樣本嗎? – Nick

+0

你的代碼不能編譯; 'ewonInfo'是一個未聲明的變量。但是一個主要的問題在這裏:'String [] [] array = null;'。你永遠不會爲'array'分配一個數組,所以當你試圖在內部的for循環中訪問它時你會得到一個'NullPointerException'。 –

+0

什麼是'ewonInfo',你在哪裏宣佈它? –

回答

0

問題得到解決。正如少數人指出的,我從來沒有初始化我的數組。完成之後,所有的工作都已經完成。

0

我會假設你想用varInfo代替ewonInfo

的代碼將是:

try { 
    Object obj = parser.parse(data); 
    JsonObject jsonObj = (JsonObject) obj; 
    JsonArray arr = jsonObj.get("ewons").getAsJsonArray(); 
    String[][] array = new String[arr.size()][]; 
    for (int i = 0; i < arr.size(); i++) { 

    JsonObject p = (JsonObject) arr.get(i); 
    JsonElement varName = p.get("name"); 
    JsonElement varStatus = p.get("status"); 
    JsonElement varDesc = p.get("description"); 

    String[] varInfo = {varName.toString(), varStatus.toString(), varDesc.toString()}; 
    array[i] = varInfo; 
    } 

} 
+0

是的,當我改變東西的時候,變量被正確命名了,我忘了這麼做,謝謝。我也直接分配它,同樣的事情發生,一切都停止了。我在數組後面放了一個println調試語句,以查看發生了什麼,以及它沒有達到那麼遠。 – basic

+0

你的問題只是用String [] [] array = null;你只需要在嘗試調用array [i] [x]之前初始化它, – DoubleMa