2012-09-24 37 views
0

JSON我有一個持有特定字符串3個字符串數組如下:的ArrayList在Java

String jsonA[] = new String[list.size()]; 
    String jsonA2[] = new String[list2.size()]; 
    String jsonA3[] = new String[list3.size()]; 
    for(int i=0;i<str.length;i++){ 
     jsonA[i]="title:"+str[i]+"url:"+str2[i]+"banner:"+str3[i]; 
     //System.out.println(jsonA[i]); 
     Gson gson = new Gson(); 
     String json = gson.toJson(jsonA[i]); 
     System.out.println(json); 
    } 

讓我這樣解釋:

jsonA[] has: str1,str2,str3 
          jsonA2[] has: str4,str5,str6 
          jsonA3[] has: str7,str8,str9 

我要讓持有像一個三維陣列:

json3D[i][i][i]  = str1,str4,str7; 
json3D[i+1][i+1][i+1] = str2,str5,str8; 
json3D[i+2][i+2][i+2] = str3,str6,str9; 

並最終將它們轉換爲json。

感謝您的任何幫助。

+0

什麼是字符串數組持有?我認爲你的循環可能不會像你期望的那樣工作。 –

+0

它包含列表數組變量。實際上它有效,但我無法弄清楚如何構建3D數組。 –

+0

你可以實例化你的3d數組,並且迭代地從你的3個數組中存儲數據,但是自動將3d數組轉換爲json似乎很困難。我會嘗試使用一些json庫並回復你。 –

回答

0

您的3D陣列的表示:

json3D[i][i][i]  = str1,str4,str7; 
json3D[i+1][i+1][i+1] = str2,str5,str8; 
json3D[i+2][i+2][i+2] = str3,str6,str9; 

這是舉辦:

jsonA[] has: str1,str2,str3 
jsonA2[] has: str4,str5,str6 
jsonA3[] has: str7,str8,str9 

看起來不正確。上述名爲json3D的結構看起來像一個二維數組,而不是一個三維數組。同樣在3D陣列中,array[i]將指向2D陣列,array[i][j]將指向1D陣列,並且array[i][j][k]將指向單個項目。

如果jsonA,jsonA2,jsonA3是3個單維數組,然後將它們全部存儲在一起,則需要一個尺寸爲3X3的二維數組,其中包含9個項目(如您在問題中所示)。

如果您已被分配使用3d陣列,那麼您將需要更多數據來填充它。因爲3X3X3陣列將保存27個項目,而不是9個。這就是說,無論你需要使用什麼樣的陣列 - 二維或三維 - 你可以簡單地遍歷你的3個一維數組來填充它,然後一個簡單的new Gson().toJson(array)將返回適當的JSON字符串。