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

时间:2017-08-23 15:31:02

标签: java json youtube-data-api

我想通过使用以下代码检查{you}视频搜索中作为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()它给出了 NullPointerException ,如果在Json中不存在categotyId,那么就会这样做。

尝试: -

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");
}

这会返回不包含 ..这是不期望的。如何检查此嵌套密钥是否可用?

P.S。 - >我必须检查许多嵌套的这样的键。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

this.selectAvailableDate = element(by.css('td[aria-disabled="false"]'));

会做的事情。

注意:也可能需要检查零长度categoryid。