ios - 在 Swift 中创建类和结构来表示 JSON 对象

标签 ios json swift

我正在尝试创建对应于在 Swift 中检索到的 JSON 数据的类。对于嵌套对象,通过结构而不是单独的类来表示它们是否合适?还是应该将这些简单地视为字典对象?因此,例如下面是一些 JSON:

{
  prop1: value1,
  prop2: {
    subprop1: subvalue1,
    subprop2: subvalue2
  }
}

在 Swift 类中表示嵌套的 prop2 对象的最佳方式是什么?我目前正在这样做,使用结构如下:

class MyClass {
  struct prop2 {
    var subprop1: AnyObject?
    var subprop2: AnyObject?
  }

  var prop1: AnyObject?
}

但是,当对象嵌套很深时,不确定如何最好地处理这些情况时,此方法会变得有点麻烦。

我还要补充一点,我可以像这样将数据序列化为 NSDictonary 对象:

if let details: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as? NSDictionary { }

但是,我试图更进一步,将字典的属性映射到 Swift 中它们各自的类变量/结构。

最佳答案

从传入 NSJSONSerialization class 的 JSON 中获取原生 NSDictionary 对象非常简单,并且如果您在格式良好的 NSDictionary 对象中设置 JSON 表示,则可以通过 `dataWithJSONObject:options:error: 执行相反的操作(即,您可以从 NSDictonary 对象创建 JSON 数据流)。 API。

公共(public)文档是针对 Objective-C 的,但如果您登录 Apple 的开发者门户,您也可以查看预发布的 Swift 文档。

关于ios - 在 Swift 中创建类和结构来表示 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25595783/

相关文章:

ios - 由于简单模式 segue 上未捕获的异常 'NSUnknownKeyException' 而终止应用程序

json - 如何为azure虚拟机创建数据盘?

json - Ansible 中是否有更新 json 值的函数?

swift - 为什么泛型特化会在泛型函数中丢失

ios - 如何在 iOS 应用程序中发送带附件(文件 PDF)的电子邮件?

ios - Objective-C dispatch_after 有时会早于指定时间执行

web-applications - 使用 iOS 网络应用的元标记锁定方面

C# 解析无名称的Json文件

swift - 覆盖 UILabel setText : method in Swift

swift - 如何从其 ASCII 值中获取字符?