У меня есть файл в формате JSON в структуре:Как получить JsonArray из Json-файла?
[
{
"name": "north america",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "south america",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "north europe",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "west europe",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "east europe",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "south europe",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "north africa",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "south africa",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "north asia",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "west asia",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "east asia",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "southeast asia",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "south asia",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
},
{
"name": "oceania",
"population": 10,
"wealth": 0,
"education": 0,
"corruption": 0
}
]
предварить, я использую Gson разобрать мой файл JSON. То, что я хочу быть в состоянии сделать это хранить данные как JsonArray
То, что я написал, чтобы сделать это:
final Land[] landInfo = new Gson().fromJson(getClass().getResource("../res/LandInfo.json").toExternalForm(), Land[].class)
Который говорит мне Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $
Мой класс Land:
public class Land {
private String name;
private int population;
private int wealth;
private double education;
private double corruption;
public String getName() {
return name;
}
public int getPopulation() {
return population;
}
public void setPopulation(int population) {
this.population = population;
}
public int getWealth() {
return wealth;
}
public void setWealth(int wealth) {
this.wealth = wealth;
}
public double getEducation() {
return education;
}
public void setEducation(double education) {
this.education = education;
}
public double getCorruption() {
return corruption;
}
public void setCorruption(double corruption) {
this.corruption = corruption;
}
}
Почему я получаю этот результат от попытки получить массив из хорошо отформатированного Json-файла?
Может быть, это поможет вам: http://stackoverflow.com/questions/3763937/gson-and-deserializing-an-array-of-objects-with-arrays -in-it – Klapsa2503
Я попытался изменить свой код, удалив «все» и имея весь файл Json, инкапсулированный с помощью []. Однако моя ошибка аналогична: «Ожидалось BEGIN_ARRAY, но было STRING в строке 1 столбец 1 путь $' –
Возможно, я ошибаюсь, но кажется, что ошибка говорит о том, что парсер нашел '' ', где он ожидал' [', и это было в начале ваш JSON-файл. Но на основе вашего кода и примера это выглядит неправильно. Не могли бы вы опубликовать правильную структуру и код JSON, которые позволят нам воспроизвести вашу проблему? Вам не нужно публиковать все объекты из массива, даже один или два должно быть достаточно. – Pshemo