arrays - 如何在嵌套的 JSON 值上使用 SwiftyJSON

标签 arrays json nested alamofire swifty-json

我正在调用一个 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",
         }
     ]
}

对于顶级 key usernamefirstName然而,调试器显示正确的值,只要我深入一点以获得 profileImagecharacterName即使打印 json 显示这些键的值,这些也会返回 nil。

我究竟做错了什么?我只是没有看到它。

任何想法都会有所帮助。谢谢你。

最佳答案

尝试

var profileImage: String! = userDict["userImages"]["profile"][0]["filename"].string

var characterName: String! = userDict["characters"][0]["characterName"].string

并让我们知道它提供了什么。

关于arrays - 如何在嵌套的 JSON 值上使用 SwiftyJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31715907/

相关文章:

c# - 返回 JSON 数组中的第二个变量

c++ - delete[]性能问题

json - 如何使用jq从数组中的每个对象中提取字段?

perl - Perl DBI begin_work和与SQL Server 2008交互的嵌套事务

c++ - 在消息 Protobuf 中设置消息的字段

arrays - 如何在 D2 中初始化 const 值数组?

javascript - 统计不同div中li元素个数的函数,当存在相同自定义值的div时合并计数

javascript - 如何有效地过滤对象的对象?

python - 如何在 bash shell 脚本中解析和加载 JSON?

go - 如何将 interface{} 转换为 Golang 中的嵌套树