Я пытаюсь прочитать файл json (школы. json) с помощью ObjectMapper. Файловая структура json была примерно такой:
[
{
"schoolid": "X",
"schoolname": "ABC",
"schoolbranch": "DEF",
},
{
"schoolid": "Y",
"schoolname": "GDF",
"schoolbranch": "HJG",
},
]
И этот json файл был прочитан из java, как показано ниже:
static final String fileName = "schools.json";
InputStream iStream = getClass().getClassLoader().getResourceAsStream(fileName);
schools = objectMapper.readValue(iStream,
objectMapper.getTypeFactory().constructCollectionType(List.class, School.class));
Теперь я обновил json вот так:
[
{
"schoolid": "X",
"schoolname": [{"original": "dfs"},{"translated": "sfds"}],
"schoolbranch": [{"sub": "fdsf5"},{"major": "908fds"}],
},
{
"schoolid": "Y",
"schoolname": [{"original": "wera"},{"translated": "sfds"}],
"schoolbranch": [{"sub": "mohk"},{"major": "908fds"}],
},
]
Таким образом, школа. java также изменилась. В предыдущей версии каждое поле было полем String. Теперь schoolname и schoolbranch являются другими моделями / объектами, имеющими поля original, переведенные et c.
public class School {
private int schoolid;
private SchoolName schoolname;
private SchoolBranch schoolbranch;
...
// getters and setters here
}
И, например, SchoolName. java:
public class SchoolName {
private String original;
private String translated;
// etc.
}
Теперь вышеуказанный кодовый блок java не работает. школ объект возвращает ноль.
Я не мог сделать эту работу. Я нашел несколько примеров, где поле json содержит массив, но я не мог применить аналогичные логики c для моего случая. Помощь приветствуется.