Ich entwickle eine App auf der Android-Plattform, die Youtube-Video-Suchergebnisse als JSON-Format erhält und den Titel, den Kanalnamen und die Thumbnail-URL in eine Listenansicht einfügt. Ich sollte auch hinzufügen, dass ich die jsoup-Bibliothek für Android verwende. So ziemlich verbinde ich mich mit einer URL, die eine JSON-Antwort enthält, und versuche, Werte aus dieser Antwort zu verwenden und sie auf eine Listenansicht anzuwenden. Hier ist die Methode.JSON Exception - Kein Wert für gewünschte Parameter
public void initSearch(String searchQuery) {
String url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&order=rating&q=" + searchQuery + "&key=MY_GOOGLE_API_KEY";
try {
Document doc = Jsoup.connect(url).ignoreContentType(true).timeout(10 * 1000).get();
String getJson = doc.text();
try{
JSONObject jsonObject = (JSONObject) new JSONTokener(getJson).nextValue();
String videoId = jsonObject.getString("videoId");
String thumbnail = "http://img.youtube.com/vi/" + videoId + "/mqdefault.jpg";
String title = (String)jsonObject.get("title");
String channelTitle = (String)jsonObject.get("channelTitle");
VideoDetails videoDetails = new VideoDetails(thumbnail, title,channelTitle,"6,900");
searchedList.add(videoDetails);
} catch (JSONException e){
e.printStackTrace();
}
} catch (IOException e){
e.printStackTrace();
}
}
Here ist, was die Webseite, die ich verbinde, aussieht.
Ich habe bereits überprüft, ob es gültiges JSON-Format ist, und ja, es ist.
Jetzt ist das Problem, nichts wird tatsächlich meiner Listenansicht hinzugefügt. Wenn diese Methode aufgerufen wird, erhalte ich einen Fehler, der so aussieht.
W/System.err: org.json.JSONException: No value for videoId
Wer weiß, was los ist? Danke im Voraus.
was Search Wert? Ich möchte es testen. – redAllocator
Der searchQuery-Wert stammt aus einer SearchView, die ich in die MainActivity implementiert habe. Ich habe nur "Hunde" als Suchbegriff verwendet. – Mason
Denken Sie daran, dass Sie den API-Schlüssel am Ende der URL ändern müssen, um eine autorisierte Anfrage zu erhalten. – Mason