Как получить изображение из 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;
    }
    
}
→ Ссылка