Как получить изображение из JSON?
Получаю ответ от API в формате JSON. Пример JSON'a:
{ "message": "https://images.dog.ceo/breeds/boxer/n02108089_3236.jpg", "status": "success" }
Как достать из него изображение и сохранить в директории проекта?
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
В целом примерно так:
import com.google.gson.Gson;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ImageLoader {
public static void main(String[] args) throws Exception {
String json = "{\"message\": \"https://images.dog.ceo/breeds/boxer/n02108089_3236.jpg\", \"status\": \"success\"}";
loadImage ("image", parse(json, Model.class).getMessage());
}
private static <T> T parse (String json, Class <T> clazz){
return new Gson().fromJson(json, clazz);
}
private static void loadImage(String distPath, String url) {
String ext = url.substring(url.lastIndexOf(".") + 1);
try (InputStream in = new URL(url).openStream()) {
Files.copy(in, Paths.get(String.join(".", distPath, ext)));
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
class Model{
public String message;
public String status;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}