2016-02-18 28 views
0

我的目標是導入一個JSON文件,並且對於JSON對象的每個元素,我想爲每個元素類型創建一個數組。如果這樣做沒有意義,那麼我希望做的是以下幾點:如何使用Gson字符串爲每種類型創建一個字符串數組?

鑑於JSON文件中下面的文字:

..., 
{ 
"baseLevel": 50, 
"difficulty": 233, 
"durability": 80, 
"level": 70, 
"maxQuality": 2921, 
"name": { 
    "de": "Trauzeugen-Jacke", 
    "en": "Best Man's Jacket", 
    "fr": "Veste de témoin", 
    "ja": "??????????" 
     }, 
"stars": 2 
} 
,... 

我有一個包含我的JSON文件中的大量條目上面的信息,我希望做的是爲每種類型創建一個數組,例如baseLevel,難度,耐久性,級別,maxQuality和name(en),但是我完全喪失瞭如何做到這一點。

我此刻的設置是(使用GSON):

JsonElement jsonElement = parser.parse(in); 
prettyJson[i] = gson.toJson(jsonElement); 

我不知道我是否意味着要使用jsonElement或prettyJson []構建我希望創建的陣列,讓獨自如何。我試着做一些研究,但沒有任何運氣或發現任何似乎與我正在嘗試做的事情有關的例子。

如果任何人都能指引我走向正確的方向,或者提供一個如何實現我的目標將是偉大的例子。

謝謝大家!

EDIT1: 我相信我有固定的我的第一個問題,並創建一個包含所有的「恩」字段通過下面的代碼JsonElement:

JsonParser parser = new JsonParser(); 
JsonElement jsonElement = parser.parse(in); 
JsonArray recipe_array = jsonElement.getAsJsonArray(); 
for (Object o : recipe_array) { 
    JsonObject recipe = (JsonObject) o; 
    JsonElement names = recipe.get("name"); 
    String names_s = names.toString(); 
    JsonElement names_e = parser.parse(names_s).getAsJsonObject().get("en"); 
    System.out.println(names_e); 

} 

我現在不知道如何轉換這到一個字符串數組(如果它甚至可能?),因爲我試圖將names_e轉換爲JsonArray時出現異常錯誤。

回答

0

我不確定您是否可以一步完成此操作。你可以遍歷你得到的數組,並將特定值拉出來存儲在一個新的數組中。如下所示。

Gson gson = new Gson(); 
MyItemList myItemList = gson.fromJson(jsonFile, myItemList.class); 

for (Item item : myItemList.getItems) { 
    baseLevelArrayList.add(item.getBaseLevel); 
    ... 
} 
+0

MyItemList是一個特定的類嗎?因爲我不確定如何應用它? – TMP4

+0

MyItemList將是您的根對象的類。只需要一個包含所有項目的ArrayList的類。 – Dnakin

+0

謝謝,我結束了搜索,並設法將第一個字符串轉換爲字符串,然後將其重新解析爲一個對象,然後我只選擇了「en」部分。從這我能夠將它轉換成一個字符串數組,用於填充我的下拉菜單。 – TMP4

相關問題