我的目标是导入一个JSON文件,对于JSON对象的每个元素,我想为每个类型的元素创建一个数组。如果这没有意义,那么我想做的是:
在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: 我相信我修复了我的第一个问题,并创建了一个包含所有" en"的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 :(得分:0)
我不确定你能否一步到位。您可以迭代所获得的数组并将特定值拉出以存储在新数组中。如下所示。
Gson gson = new Gson();
MyItemList myItemList = gson.fromJson(jsonFile, myItemList.class);
for (Item item : myItemList.getItems) {
baseLevelArrayList.add(item.getBaseLevel);
...
}