Как спарсить правильно json, в котором есть массив объектов?
У меня задача спарсить json в котором массив объектов, затем преобразовать в классы и распечатать. Что тут я делаю не так?
код:
public static void main(String[] args) {
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
String url = "https://jsonplaceholder.typicode.com/posts";
try {
HttpURLConnection httpClient = (HttpURLConnection) new URL(url).openConnection();
httpClient.setRequestMethod("GET");
httpClient.setRequestProperty("User", "Google Ghrome");
int responseCode = httpClient.getResponseCode();
System.out.println("URL сайта: " + url);
System.out.println("код ответа: " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(httpClient.getInputStream()));
User[] users = gson.fromJson(in, User[].class);
System.out.println(users);
} catch (IOException e) {
e.printStackTrace();
}
}
Ответы (1 шт):
Автор решения: zed
→ Ссылка
В классе
Userнужно переопределить методtoString():class User{ public int userId; public int id; public String title; public String body; @Override public String toString() { return "User{" + "userId=" + userId + ", id=" + id + ", title='" + title + '\'' + ", body='" + body + '\'' + '}'; } }Использовать метод
Arrays.toString()для печати массива:User[] users = gson.fromJson(in, User[].class); System.out.println(Arrays.toString(users));