【发布时间】:2015-10-21 08:18:54
【问题描述】:
我正在调用一个 JSON API,其中包含我需要获取的多个嵌套值。我正在使用 SwiftyJSON 让事情变得更简洁。对于顶级值,一切似乎都运行良好,但在更深层次上,我得到了可怕的“展开可选值时为零”。
这是我使用 Alamofire 进行 API 调用的方式:
Alamofire.request(APIRequests.Router.Nearby(self.page)).responseJSON(){
(_,_,json,_) in
println(json)
if (json != nil){
var jsonObj = JSON(json!)
if let userArray = jsonObj ["results"].array {
for userDict in userArray {
var username: String! = userDict["username"].string
var firstName: String! = userDict["firstName"].string
var profileImage: String! = userDict["userImages"]["profile"]["filename"].string
var characterName: String! = userDict["characters"]["characterName"].string
var user = User(username: username, profileImage: profileImage, firstName: firstName, characterName: characterName)
self.users.append(user)
}
}
这是 JSON 的示例:
{
userInfo: {
something: "abc",
requestType: "GET"
},
results: [
{
username: "Jess",
firstName: "Jessica",
userImages: {
profile: [
{
userImageID: "6",
filename: "user-07.jpg"
}
],
cover: [
{
userImageID: "15",
filename: "user-07.jpg"
}
]
},
characters: [
{
userCharacterID: "8",
characterName: "Amelia",
}
]
}
对于顶级键 username 和 firstName,调试器显示正确的值,但是,只要我更深入地了解 profileImage 或 characterName,即使这些值返回为 nil打印 json 会显示这些键的值。
我做错了什么?我只是没看到。
任何想法都会有所帮助。谢谢。
【问题讨论】:
标签: arrays json nested alamofire swifty-json