JsonNull в Gson Java
Пишу бота, нужен парсер Json файлов, стал использовать Gson и все нравилось, до момента тестов :(
Логика такова:
- Присылаю боту сообщение с символом токена
- Идет запрос в БД за поиском id этого символа
- Затем вставляю id в API запрос
- Получаю Json
Код
package config;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
public class API_CoinGeko {
public String API_CoinGeko_coin(String coin) throws IOException{
String textFromApi = null;
URL url = new URL("https://api.coingecko.com/api/v3/coins/"+coin+"");
// Вывод в консоль -> https://api.coingecko.com/api/v3/coins/bitcoin
System.out.println(url.toString());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
JsonReader json = new JsonReader(new InputStreamReader(connection.getInputStream()));
JsonElement jsonElement = JsonParser.parseReader(json);
// Создание главного объекта
JsonObject rootObject = jsonElement.getAsJsonObject();
...
return textFromApi;
Вывод из консоли :
2022-08-15 20:26:12.615 ERROR 12588 --- [legram Executor] o.t.t.u.DefaultBotSession : JsonNull
java.lang.UnsupportedOperationException: JsonNull
at com.google.gson.JsonElement.getAsString(JsonElement.java:179) ~[gson-2.9.1.jar:na]
at config.API_CoinGeko.API_CoinGeko_coin(API_CoinGeko.java:52) ~[classes/:na]
at service.u_bablo_botCommands.coinAnswer(u_bablo_botCommands.java:180) ~[classes/:na]
at service.u_bablo_botCommands.onUpdateReceived(u_bablo_botCommands.java:99) ~[classes/:na]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na]
at org.telegram.telegrambots.meta.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27) ~[telegrambots-meta-6.1.0.jar:na]
at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:317) ~[telegrambots-6.1.0.jar:na]
Ну как null, если json точно есть, если перейти по ссылке API?
До этого я не брал данные из БД, а просто вводил id монеты в бота и не меняя код получал правильный ответ, может глаз замылился или еще чего, но я не понимаю куда смотреть(