JSON结构如下所示:
{
"items":[
{
"playlists":[
{
"title":"Level One Title",
"courses":[
{
"title":"Level One Course One Title",
"lessons":[
{
"title":"lesson 1 title",
"url":"lesson 1 url"
},
{
"title":"lesson 2 title",
"url":"lesson 2 url"
}
]
},
{
"title":"Level One Course Two Title",
"lessons":[
{
"title":"lesson 1 title",
"url":"lesson 1 url"
},
{
"title":"lesson 2 title",
"url":"lesson 2 url"
}
]
}
]
},
{
"title":"Level Two Title",
"courses":[
{
"title":"Level Two Course One Title",
"lessons":[
{
"title":"lesson 1 title",
"url":"lesson 1 url"
},
{
"title":"lesson 2 title",
"url":"lesson 2 url"
}
]
},
{
"title":"Level Two Course Two Title",
"lessons":[
{
"title":"lesson 1 title",
"url":"lesson 1 url"
},
{
"title":"lesson 2 title",
"url":"lesson 2 url"
}
]
}
]
}
]
}
]
}
由于我是一名iOS开发者,我已经编写了一段模拟的Swift代码,可以实现我想要的。看起来是这样的:
for level in levels {
let title = level["title"]
//TODO: create a folder with title and set as pwd
for course in level["courses"] {
let courseTitle = course["title"]
//TODO: create a folder with title and set as pwd
for lesson in course["lessons"] {
let title = lesson["title"]
let videoURL = lesson["url"]
//TODO: download video in current folder with title
}
}
}
levels
Array
属于
Dictionaries
,
level
是其中之一
.每个级别包含一个
属于
courses
Dictionary
,包含
大堆
lesson
字典。
levels=$(jq ".items[0].playlists" data.json)
for level in $levels
do
title=$($level | jq ".title")
echo $title
done
这似乎根本不起作用。我想我在这里使用循环的逻辑是完全错误的。你知道怎么做吗?