objective-c - Swift 扩展 - 将 Json 解析为 NSDictionary 模型(通过使用类似于 Obj-C 中的类别)

标签 objective-c swift nsdictionary extension-methods categories

我有 API 请求来获取 json 字符串,类似这样的东西:

{  
  "data":[  
    {  
     "id":123,
     "name":"Felix"},
    {  
     "id":122,
     "name":"Mary"},
    {  
     "id":111,
     "name":"Jason"},
   ]
}

在我的 Obj-C NSDictionary+user 中是

-(NSString *)usrId
{
    return self[@"id"];
}

-(NSString *)usrName
{
    return self[@"name"];
}
...

当我使用它时,我导入类别类,并像 dict.name 一样访问它...

我找不到与此问题相关的好的答案。我如何在 Swift 中实现这一目标?


已更新 [2017.07.21]

我选择使用 SwiftyJSON 库来解决所有 json-dictionary-object-mapping 工作。节省大量时间。

SwiftyJSON

最佳答案

解析对 nsdictionary 的 json 响应并在 swift 中使用它的最佳和最安全的方法是:

var responseRecord<datastruct> = Array<datastruct>()             

struct datastruct
{
    var id: String?
    var name:String?

    init(add: NSDictionary)
    {
        id = add["id"] as? String
        name = add["name"] as? String
    }
}

并在程序中访问它:

打印(self.responseRecord.id) 打印(self.responseRecord.name)

关于objective-c - Swift 扩展 - 将 Json 解析为 NSDictionary 模型(通过使用类似于 Obj-C 中的类别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38471865/

相关文章:

ios - 以编程方式更改 UIImage 的 Alpha

ios - 在 Objective-C 中加载时将光标移动到预填充 Textview 的开头

objective-c - 从另一个 ViewController 隐藏栏按钮(左右)?

ios - 如何在 CoreData 中保存字典数组?

ios - Swift 3 核心数据 - init(上下文 :) is only available on iOS 10 or newer

ios - 我可以在 for 循环中将键值对添加到 NSarray 或字典吗?

objective-c - 问号和冒号(? : ternary operator) mean in objective-c?

ios - 优化 - 步进可能表现得很奇怪;变量在 Xcode 9.1 中可能不可用

objective-c - 如何从 NSArray 中的每个 NSDictionary 获取特定键的所有值?

ios - 如何将 key 添加到NSMutableArray