Я имею дело с довольно старым API, предоставленным KhanAcademy.
Ссылка на git: https://github.com/Khan/khan-api/wiki/Khan-Academy-API
У меня нет опыта использования REST-сервисов или того, как анализировать Json изих.Я попробовал то, что смог найти в Интернете, но большинство сообщений SO или других вещей в Интернете не связаны с обработкой как REST, так и json одновременно.Я попытался отобразить JSON на карту, но не смог заставить это работать, потому что мои запросы Json не обрабатывались должным образом.
Вот некоторые фрагменты кода, которые я пытался использовать:
public static Object getConnection(String url){
URL jsonUrl;
String message;
try{
jsonUrl = new URL(url);
System.out.println("This is the URL: "+ jsonUrl);
} catch (MalformedURLException ex) {
message = "failed to open a new conenction. "+ ex.getMessage();
//logger.warn(message);
throw new RuntimeException();
}
URLConnection connection;
try{
connection = jsonUrl.openConnection();
connection.connect();
}catch(IOException e){
message = "Failed to open a new connection. " + e.getMessage();
//logger.warn(message);
throw new RuntimeException();
}
Object jsonContents;
try{
jsonContents = connection.getContent();
System.out.println("This is the content: "+jsonContents);
}catch(IOException e){
message = "failed to get contents.";
//logger.warn(message);
throw new RuntimeException(message);
}
return jsonContents;
}
ниже используется JAX RS API
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://www.khanacademy.org/api/v1/topictree");
JsonArray response = target.request(MediaType.APPLICATION_JSON).get(JsonArray.class);
}
Ниже приведен некоторый "код зомби""Это сборник вещей, которые я пытался в основном показать, чтобы убедиться, что я действительно потерян и что я искал решение в течение 7 часов?
JsonReader reader = new JsonReader(response);
JsonParser parser = new JsonParser();
JsonElement rootElement = parser.parse(reader);
JsonElement rootElement = parser.parse(response.getAsString());
JsonArray jsonArray = rootElement.getAsJsonArray();
ArrayList results = new ArrayList();
Gson myGson = new Gson();
for(JsonElement resElement : jsonArray){
//String mp4 = myGson.fromJson(resElement, );
}
JsonArray jarray =jsonObject.getAsJsonArray();
jsonObject= jarray.get(0).getAsJsonObject();
String result = jsonObject.get("title").getAsString();
System.out.println(result);
JsonObject resultObject = jsonObject.getAsJsonObject("url");
String result = resultObject.getAsString();
System.out.println(result);
JsonObject jsonObject=response.get(0).getAsJsonObject();
return new Gson().fromJson(url, mapType);
}
Любая помощь приветствуется.