Моя цель — импортировать файл 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 и имя (en), однако я совершенно потерялся в том, как это сделать.
Моя настройка на данный момент (используя GSON):
JsonElement jsonElement = parser.parse(in);
prettyJson[i] = gson.toJson(jsonElement);
Я не уверен, должен ли я использовать jsonElement или prettyJson[] для создания массива, который я хочу создать, не говоря уже о том, как это сделать. Я пытался провести некоторое исследование, но мне не повезло, и я не нашел примеров, которые, по-видимому, относятся к тому, что я пытаюсь сделать.
Если бы кто-нибудь мог указать мне правильное направление или привести пример того, как достичь моей цели, это было бы здорово.
Спасибо всем!
Edit1: кажется, я исправил свою первую проблему и создал JsonElement, содержащий все поля "en", с помощью приведенного ниже кода:
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);
}
Теперь я не уверен, как преобразовать это в массив строк (если это вообще возможно?), так как я получаю ошибку исключения при попытке преобразовать named_e в JsonArray.