{
"company": {
"name": "XXX",
"age": "15",
"competences": [
"Android",
"IOS",
".NET",
"PHP",
"Smart-TV"
],
"employees": [
{
"name": "John",
"phone_number": "769453",
"skills": [
"Java",
"Android"
]
},
{
"name": "Diego",
"phone_number": "987924",
"skills": [
"Java",
"Smart-TV"
]
},
{
"name": "Alfred",
"phone_number": "452533",
"skills": [
"Objective-C",
"Android",
"Photoshop"
]
},
{
"name": "John",
"phone_number": "212456",
"skills": [
"Java",
"Phython"
]
},
{
"name": "Mat",
"phone_number": "778975",
"skills": [
"Android",
"MovieMaker"
]
},
{
"name": "Bob",
"phone_number": "456468",
"skills": [
"Groovy",
"Kotlin"
]
},
{
"name": "Marty",
"phone_number": "321789",
"skills": [
"Android",
"PHP",
"C#"
]
}
]
}
}
Имеется JSON, нужно получить список работников (employee
) со всеми полями. Подскажите, пожалуйста, как всё организовать.
Ваши POJO:
class MyResponse {
private Company company;
public MyResponse(Company company) {
this.company = company;
}
// getters & setters
}
class Company {
private String name, age;
private List<String> competences;
private List<Employee> employees;
public Company(String name, String age, List<String> competences, List<Employee> employees) {
this.name = name;
this.age = age;
this.competences = competences;
this.employees = employees;
}
// getters & setters
}
class Employee {
private String name;
@SerializedName("phone_number")
private String phone;
private List<String> skills;
public Employee(String name, String phone, List<String> skills) {
this.name = name;
this.phone = phone;
this.skills = skills;
}
// getters & setters
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", phone='" + phone + '\'' +
", skills=" + skills +
'}';
}
}
Десериализация:
String json = "ваша строчка";
Gson gson = new Gson();
MyResponse response = gson.fromJson(json, MyResponse.class);
System.out.println(response.getCompany().getEmployees());
Вывод в консоль (на примере строки, приведённой в вопросе):
[Employee{name='John', phone='769453', skills=[Java, Android]}, Employee{name='Diego', phone='987924', skills=[Java, Smart-TV]}, Employee{name='Alfred', phone='452533', skills=[Objective-C, Android, Photoshop]}, Employee{name='John', phone='212456', skills=[Java, Phython]}, Employee{name='Mat', phone='778975', skills=[Android, MovieMaker]}, Employee{name='Bob', phone='456468', skills=[Groovy, Kotlin]}, Employee{name='Marty', phone='321789', skills=[Android, PHP, C#]}]
Пример обработки:
response.getCompany().getEmployees().stream()
.filter(employee -> employee.getSkills().contains("Kotlin"))
.forEach(System.out::println);
Ищем всех работников, которые знают котлин. Вывод в консоль:
Employee{name='Bob', phone='456468', skills=[Groovy, Kotlin]}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не знаю какая логика записи выражения в формате postfix в бинарное деревоУ меня есть пример: Infix: 2+3*2+6 Postfix: 2 3 2 * 6 + + Должно выглядеть так:
Написал простой чат без GUIКогда подключаюсь к серверу по локальному IP, то подключение происходит
Подскажите новичкуУ меня есть 2 таблицы А и В в таблице А - 2 колонки, А_Ап, А_Давн в таблице В - 2 колонки, В_Ап, В_Давн в каждой таблице по несколько...