如何使用SwiftyJSON遍历每个JSON对象,并从每个对象获取值?

问题描述 投票:0回答:1

我正在尝试将SwiftyJSON与Spoonacular API结合使用来做一些食谱应用程序。

我是新手开发人员,因此在遍历JSON响应结果时遇到了麻烦。我将SwiftyJSON与Alamofire结合在一起。

API结果如下:

    "results": [
{
"id": 548450,
"title": "Sweet Potato Kale Pizza with Rosemary & Red Onion",
"image": "https://spoonacular.com/recipeImages/548450-312x231.jpg",
"imageType": "jpg"
},
{
"id": 759293,
"title": "Deep-Dish Skillet Pizza",
"image": "https://spoonacular.com/recipeImages/759293-312x231.jpg",
"imageType": "jpg"
},

我想查看每个配方结果,并获取ID和标题。我该怎么做?

[通过谷歌搜索,大多数人都建议类似:

            for (key, subJson) in json {
            let id = json["results"][index]["id"].stringValue
            let title = json["results"][index]["title"].stringValue
            print(id)
            print(title)
        }

如您所见,我在访问JSON响应中的每个索引时遇到麻烦。上面的代码似乎遍历每个键(在本例中为4,id,title,image和imageType),因此不会遍历每个索引。

[当我认为从响应数据创建的JSON不是正常数组时,我很难弄清楚如何遍历每个索引

json swift loops alamofire
1个回答
0
投票

在您的情况下,这样的方法应该起作用:

let results = json["results"].arrayValue
let identifiers = results.map { $0["id"].stringValue }
let titles = results.map { $0["title"].stringValue }

但是就像已经提到的@Frankenstein,您最好与Decodable结合创建JSONDecoder模型。

© www.soinside.com 2019 - 2024. All rights reserved.