gpt4 book ai didi

ios - 为什么 "data"不是字典

转载 作者:行者123 更新时间:2023-11-30 13:45:03 25 4
gpt4 key购买 nike

我正在尝试使用 SwiftyJSON 解析从 API 获取的 JSON,但它给出了以下错误:可选(Error Domain=SwiftyJSONErrorDomain Code=901 "Dictionary["data"] 失败,它不是字典"UserInfo={NSLocalizedDescription=Dictionary["data"] 失败,它不是字典})

JSON:

{
"status": 200,
"error": "",
"data": {
"cursusses": [
{
"cursus": {
"curId": 1,
"curNaam": "Lightroom Tips & Tricks",
"catId": 1,
"curInfo": "Praktische en korte Tips en Tricks om sneller en prettiger met Lightroom te kunnen werken.",
"curThumbnail": "lr5-tips-en-tricks.jpg"
}
},
{
"cursus": {
"curId": 2,
"curNaam": "Lightroom Fotobewerkingen",
"catId": 1,
"curInfo": "Per video wordt er in deze cursus een nabewerking uitgevoerd op een foto. Een leerzame manier om te zien hoe je in de praktijk foto's kunt nabewerken terwijl je daarnaast veel praktische tips krijgt over het gebruik van Lightroom 5.",
"curThumbnail": "lr5-bewerkingen.jpg"
}
},
{
"cursus": {
"curId": 3,
"curNaam": "Photoshop Fotobewerkingen",
"catId": 2,
"curInfo": "Per video wordt er in deze cursus een nabewerking uitgevoerd op een foto. Een leerzame manier om te zien hoe je in de praktijk foto's kunt nabewerken terwijl je daarnaast veel praktische tips krijgt over het gebruik van Photoshop.",
"curThumbnail": "photoshop-cc.jpg"
}
},
{
"cursus": {
"curId": 4,
"curNaam": "Basiscursus Lightroom 5",
"catId": 1,
"curInfo": "Leer de basisvaardigheden voor het werken met Adobe Photoshop Lightroom. Over het werken met catalogussen, importeren, het selectieproces, de nabewerking en het exporteren.",
"curThumbnail": "basiscursus-lightroom-5.jpg"
}
},
{
"cursus": {
"curId": 5,
"curNaam": "Photofacts Academy",
"catId": 3,
"curInfo": "Toelichting over het gebruiken van de Photofacts Academy website.",
"curThumbnail": "photofacts-academy.jpg"
}
},
{
"cursus": {
"curId": 6,
"curNaam": "Lightroom 5 web module",
"catId": 1,
"curInfo": "Met de Lightroom web module kun je eenvoudig van je foto's een online galerij maken.",
"curThumbnail": "lr5-web-intro.jpg"
}
},
{
"cursus": {
"curId": 7,
"curNaam": "Photoshop Tips & Tricks",
"catId": 2,
"curInfo": "Praktische tips voor het gebruik van Adobe Photoshop CC.",
"curThumbnail": "photoshop-cc-splash.jpg"
}
}
]
}
}

我目前正在尝试使用此代码块来解析数据,该函数在 Alamofire 请求的completionHandler 中调用:

func succesCurResponse(let response : Response<String, NSError>) {
if let value = response.result.value {
let json = JSON(value)
let error = json["error"].stringValue
print(json["data"].error)
if(error.isEmpty) {
for(var i = 0; i < json["data"]["cursusses"].count; i++) {
let name = json["data"]["cursusses"][i]["cursus"]["curNaam"].stringValue
let id = json["data"]["cursusses"][i]["cursus"]["curId"].intValue
let catId = json["data"]["cursusses"][i]["cursus"]["catId"].intValue
let info = json["data"]["cursusses"][i]["cursus"]["curInfo"].stringValue
let thumbnail = json["data"]["cursusses"][i]["cursus"]["curThumbnail"].stringValue
let newCur = Cursus()
newCur.ID = id
newCur.name = name
newCur.info = info
newCur.thumbnail = thumbnail
}
}
else {
print(error)
}
}
}

有什么建议吗?

最佳答案

抱歉,我不了解 Swift。但以下 Objective-C 代码将帮助您解决问题。

Objective-C:

NSArray *cursussesArray = json[@"cursusses"];

for (NSDictionary *singlecursusseDict in cursussesArray) {
NSLog(@"%@", singlecursusseDict);

NSDictionary *cursus = singlecursusseDict[@"cursus"];
}

我尝试一下Swift

let cursussesArray:NSArray = json[“cursusses”]

for singlecursusseDict: NSDictionary in cursussesArray {
print(singlecursusseDict)
cursusDict: NSDictionary = json[“cursus”]
print(cursusDict)
}

关于ios - 为什么 "data"不是字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35058406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com