我有使用YoutubeAPI获得的json:
Restore-DbaDatabase -SqlInstance servername -DatabaseName databasename -Path C:\Temp\filename.bak -WithReplace -useDestinationDefaultDirectories -ReplaceDbNameInFile
我想将“ id”保存在ArrayList上,但是我有一些问题,这是我使用的代码:
{
"items": [
{
"id": {
"videoId": "ob1ogBV9_iE"
},
"snippet": {
"title": "13 estrellas ",
"description": "Pueden encontrar estas "
}
},
{
"id": {
"videoId": "o9vsXyrola4"
},
"snippet": {
"title": "Rayos Cósmicos ",
"description": "Este es un programa piloto "
}
}
]
}
在这一行中,我使用首先创建的JSON对象创建了JSONarray
JSONArray jsonArray = myResponse.getJSONArray("items");
我的问题是如何访问此字段?以及我该如何保存
答案 0 :(得分:1)
您有两个主要问题。首先是"videoID"
和"videoId"
不是相同的字符串。因此,您正在检查不存在的密钥。
您的第二个问题是,"videoId"
键在顶级对象中不存在,而是在"id"
对象中,因此您需要深入研究以获得它:>
JSONArray jsonArray = myResponse.getJSONArray("items");
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
try {
JSONObject json = jsonArray.getJSONObject(i);
JSONObject id = json.getJSONObject("id");
list.add(id.getString("videoId"));
} catch (JSONException e) {
e.printStackTrace();
}
}
System.out.println(list); // [ob1ogBV9_iE, o9vsXyrola4]
答案 1 :(得分:0)
尝试使用正确的大小写videoId
,例如
list.add(json.getString("videoId"));