Olá, pessoal Eu estou fazendo o Challenge conversor de moedas em java, eu fiz esse código para pegar dados de uma api que retorna o seguinte arquivo json:
{"USDBRL":{"code":"USD","codein":"BRL","name":"Dólar Americano/Real Brasileiro","high":"4.9325","low":"4.8478","varBid":"-0.0468","pctChange":"-0.95","bid":"4.8715","ask":"4.8735","timestamp":"1688763595","create_date":"2023-07-07 17:59:55"}}
o código funciona, o problema é que eu não estou conseguindo atribuir os valores da moeda no meu setMoeda();
Segue o código abaixo:
package conectaApiHttpGetPegaDadosDaMoedaMaven.d;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection;
import com.google.gson.Gson;
public class Conecta {
private String moeda;
public String getMoeda() {
return moeda;
}
public void setMoeda(String moeda) {
this.moeda = moeda;
}
public static void main(String[] args) throws IOException {
String dolarReal = "https://economia.awesomeapi.com.br/json/last/USD-BRL";
URL url = new URL(dolarReal);
URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuilder jsonMoeda = new StringBuilder();
String valor;
while ((valor = br.readLine()) != null) {
jsonMoeda.append(valor);
}
Conecta valMoeda = new Gson().fromJson(jsonMoeda.toString(), Conecta.class);
valMoeda.setMoeda(jsonMoeda.toString());
System.out.println(valMoeda.getMoeda());
}
}
Retorno do: System.out.println(valMoeda.getMoeda());
{"USDBRL":{"code":"USD","codein":"BRL","name":"Dólar Americano/Real Brasileiro","high":"4.9325","low":"4.8478","varBid":"-0.0468","pctChange":"-0.95","bid":"4.8715","ask":"4.8735","timestamp":"1688763595","create_date":"2023-07-07 17:59:55"}}
Desde ja, Agradeço!