【发布时间】:2017-08-06 03:21:27
【问题描述】:
我正在 android 平台上开发一个应用程序,它以 JSON 格式获取 youtube 视频搜索结果,并将标题、频道名称和缩略图 url 放入列表视图中。我还应该补充一点,我正在使用适用于 android 的 jsoup 库。几乎我正在连接到一个包含 JSON 响应的 URL,并尝试使用该响应中的值并将它们应用于列表视图。 方法如下。
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 是我要连接的网页的样子。
我已经检查过它是否是有效的 JSON 格式,是的。
现在的问题是,我的列表视图中实际上没有添加任何内容。调用此方法时,我收到如下所示的错误。
W/System.err: org.json.JSONException: No value for videoId
有人知道怎么回事吗?提前致谢。
【问题讨论】:
-
什么是 searchQuery 值?我想测试一下。
-
searchQuery 值来自我在 MainActivity 中实现的 SearchView。我只是使用“狗”作为 searchQuery 术语。
-
请记住,您必须更改 url 末尾的 api 密钥才能获得授权请求
标签: java android json listview jsoup