我想使用以下代码检查作为 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/