【问题标题】:How to retrieve data from Dictionary using swift and store in a string type?如何使用 swift 从字典中检索数据并存储在字符串类型中?
【发布时间】:2015-09-19 16:29:29
【问题描述】:

我正在使用 swift 创建 iOS 应用程序。 XCODE 6.3 版 我将 NSData 存储在 NSString 中。这是它的代码。

var strData = NSString(data: data, encoding: NSUTF8StringEncoding)

现在 strData 包含这样的值。

**strData: Optional({"result":true,"user_id":2,"role_id":2,"msg":"Signed in successfully.”})**

我想将 user_id 和 role_id 存储在 2 个单独的字符串中。

为此,首先我将 NSString 更改为 Swift 中的普通字符串

var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
        as String?

当我们打印 strData 时,输出会是这样的。

**strData: Optional("{\"result\":true,\"user_id\":2,\"role_id\":2,\"msg\":\"Signed in successfully.\"}”)**

在我看来,字符串的格式是字典[键值对]

所以我创建了一个这样的字典,

var lognInDetails = Dictionary<Int, String>()

 self.lognInDetails[1] = strData

并将字符串存储到字典中。

一切正常

问题是我想根据键从字典中检索值。

对于 user_id 键,我想存储值 2。

我使用了这个代码,

self.userid = self.lognInDetails[ 1 , "user_id"] as Dictionary<Int, String>

这里的 userid 是一个字符串变量。 我只是 swift 的初学者。我有兴趣了解有关 swift 和 Objective-C 的更多信息。感谢您的帮助。

【问题讨论】:

  • 您的数据包含JSON。查找NSJSONSerialization。 SO上有很多关于JSON的问答。
  • 实际上我正在将数据发布到服务器。你是对的,我正在使用 NSJSONSerialization,这里我传递了一个字典。根据我的问题,这里 NSData 是来自服务器的成功响应,{result: true, user_id : 1, role_id: 1} 这是登录成功时服务器的响应。

标签: ios string swift dictionary


【解决方案1】:

您可以直接将 NSData 转换为 NSDictionary,然后使用它们的值设置字符串。将 NSdata 转换为 NSDictionary 使用

let jsonDict = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &error) as NSDictionary

【讨论】:

  • 是的,我已经做到了,之后我想根据一个键获取特定的值。 if self.userid = json["user_id"] { println("userid: (self.userid)") }
  • 然后从字典中你可以得到键值对。
  • 是的,我明白了。我已经接近答案了。但是语法或其他一些问题。 if let name = json["user_id"] as AnyObject?作为? String { println("userid: (name)") } 我正在尝试不同的代码。但尚未发生实际转换。这里 json 表示字典名称。
  • 让 name = json["user_id"] as String 试试这个。
  • 我已经尝试过了。我创建了这样的错误。AnyObject?未转换为字符串
【解决方案2】:

让 userId = json?["user_id"]?.integerValue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 2018-01-12
    • 2012-01-19
    • 1970-01-01
    相关资源
    最近更新 更多