Вот моя строка json, которую я использую в java:
json =
[
{"id":"123456","Data":"skill2","dmlcrud":false},
{"id":"123456","Data":"skill3","dmlcrud":true},
{"id":"123456","Data":"skill14","dmlcrud":true},
{"id":"123321","Data":"skill1","dmlcrud":false},
{"id":"123321","Data":"skill14","dmlcrud":false}
]
Теперь я хочу поместить его в коллекцию, поэтому в идеале/теоретически я хотел бы сделать:
List<Person> personList = new Gson().fromJson(json, Person.class);
и personList.size() будет = 5. Затем я бы просмотрел список personList и выполнил бы свои соответствующие действия.
Однако я понимаю, что мне нужно будет создать класс-контейнер, который сам содержит список людей? Итак, вместо (общедоступные геттеры/сеттеры удалены для краткости, возможно, там также синтаксическая ошибка).
Class Person {
private integer id;
private String Data;
private Boolean dmlCrud ;
}
Мне действительно нужно что-то вроде ?
Class container{
List<Person> personList;
static class Person {
private integer id;
private String Data;
private Boolean dmlCrud ;
}
}
Однако тогда мне нужно будет изменить javascript json, чтобы он был чем-то другим? Что кажется довольно проблематичным, поскольку я создаю строку json из массива javascript, используя JSON.stringifier.
Любая помощь принята с благодарностью.
ИЗМЕНИТЬ
решение, которое я использовал, состояло в том, чтобы добавить
public List<Person> personList;
к классу человека и измените объект json так, чтобы он был
{ "personList" :
[
{"id":"123456","Data":"skill2","dmlcrud":false},
{"id":"123456","Data":"skill3","dmlcrud":true},
{"id":"123456","Data":"skill14","dmlcrud":true},
{"id":"123321","Data":"skill1","dmlcrud":false},
{"id":"123321","Data":"skill14","dmlcrud":false}
]
}
тогда вызов gson может быть
Person person = new Gson().fromJson(json, Person.class);
и данные, доступные в списке, например так
List<Person> personList = person.getPersonList();
ИЗМЕНИТЬ 2
Второе, лучшее решение — использовать этот массив json.
[
{"id":"123456","Data":"skill2","dmlcrud":false},
{"id":"123456","Data":"skill3","dmlcrud":true},
{"id":"123456","Data":"skill14","dmlcrud":true},
{"id":"123321","Data":"skill1","dmlcrud":false},
{"id":"123321","Data":"skill14","dmlcrud":false}
]
а затем использовать
Type listType = new TypeToken<List<SkillsGsonTO>>() {}.getType();
List<Person> personList = new Gson().fromJson(json,listType);
Person person1 = personList.get(0);
где используется исходный класс
Class Person {
private integer id;
private String Data;
private Boolean dmlCrud ;
}