java - 检查 youtube-api 中视频对象中是否存在嵌套键以避免 NULLPOINTEREXCEPTION

标签 java json youtube-data-api

我想使用以下代码检查作为 YouTube 视频搜索的 Json 响应返回的 Video 对象中是否存在嵌套键:-

YouTube.Videos.List searchvideostats = youtube.videos().list("snippet,statistics");
searchvideostats.setKey(apiKey);
Video v = searchvideostats.execute().getItems().get(0);
System.out.println(v.toPrettyString());

我得到这样的输出:-

{
  "etag" : "\"m2yskBQFythfE4irbTIeOgYYfBU/-TONXAYMx_10Caihcoac4XCyb4I\"",
  "id" : "4Aa9GwWaRv0",
  "kind" : "youtube#video",
  "snippet" : {
    "categoryId" : "10",
...................
.........

我的目标是:- 如何检查此响应中是否存在 categoryId 键。因为如果执行v.getSnippet().getCategoryId(),如果Json中不存在categotyId,它会给出NullPointerException

尝试过:-

if (v.containsKey("id")) {
                   System.out.println("contains");
} else {
          System.out.println("doesnt contains");
}

这将按预期返回包含

if (v.containsKey("categoryId")) {
                   System.out.println("contains");
} else {
          System.out.println("doesnt contains");
}

这将返回不包含..,这不是预期的。我如何检查这个嵌套键是否可用?

附注-> 我必须检查许多嵌套的此类键。

感谢您的帮助。

最佳答案

您不需要字符串操作。只需使用 Youtube 库即可。

if(video.getSnippet()!=null && video.getSnippet().getCategoryId()!=null)

会做这些事情。

注意:检查零长度的categoryid可能也是必要的。

关于java - 检查 youtube-api 中视频对象中是否存在嵌套键以避免 NULLPOINTEREXCEPTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45843915/

相关文章:

java - 将 null 分配给链表中的对象会出错

java - 带有 Tinder/Whack 的 XMPP 代理服务器

java - 从多层ObjectNode中检索线结构

python - 使用 Youtube API 和 onBehalfOfContentOwner 的 CMS channel 列表

lua - 如何将 ISO 8601 持续时间转换为 Lua 中的格式化字符串?

java - 旧版本的 java 中 HttpServletRequest.getServletContext() 的等价物是什么?

Java在HashSet中HashMap的存储和查找

sql - 如何选择与 json 字段数组中的值匹配的记录?

json - 如何检查 ARM 模板变量/参数中的多个条件

javascript - 如何检索我的 YouTube channel 播放列表?