Имеется массив в PHP:
$array = [
"status" => FALSE,
"len" => 3, "msg" => "this String Hello", "data" => [0 => ["name" => "Vasya", "phone" => "123"], 1 => ["name" => "Anna", "phone" => "222"], 2 => ["name" => "John", "phone" => "300"]]
];
требуется создать такой же массив в Java, как мне это сделать ?
Ну лично я бы сделал это примерно вот так:
public class Client {
private String name;
private String phone;
public Client(String name, String phone) {
this.name = name;
this.phone = phone;
}
// Getters ans setters
}
public class DataClients {
private boolean status;
private String message;
private List<Client> clients;
public DataClients(boolean status, String message, List<Client> clients) {
this.status = status;
this.message = message;
this.clients = clients;
}
// getters and setters
}
И потом можно было бы где-нибудь сделать примерно вот так:
List<Client> clients = new ArrayList<>();
clients.add(new Client("Vasya", "123"));
clients.add(new Client("Anna", "222"));
clients.add(new Client("John", "300"));
DataClients dataClients = new DataClients(true, "message", clients);
Данный подход будет более понятным для других программистов, нежели использовать непонятный никому сбор данных в массиве. Также можно было бы еще прикрутить паттерн "Builder" для DataClients, но это уже по желанию...
Насколько мне известно, простого способа создать такую структуру данных нет. Есть пара обходных маневров, которые можно попробовать
Создать мапу таким образом:
Map<String, Object> associativeMap = new HashMap<>();
после этого ее можно наполнять парами как-то так:
associativeMap.put("len", 3);
associativeMap.put("msg", "This string hello");
associativeMap.put("data", new Object[]{"name", 3, new String[]{"Hi", "Bye"}});
Но в этом случае будет утрачена проверка типов и, таким образом, типобезопасность на этапе компиляции.
Можно пойти путем создания гетерогенного списка (heterogenous list, HList), как описано здесь. Но это путь для смелых (см. код по ссылке)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости