JSON

ObjectMapper文档中文翻译(3)

字号+ 作者:H5之家 来源:H5之家 2016-11-11 15:01 我要评论( )

为了使用这个特性,需要先创建一个对象实现了 MapContext 协议(这个协议是空的),然后在初始化时传入 Mapper 中。 struct Context: MapContext {var importantMappingInfo = 映射时需要知道的额外信息}class User

为了使用这个特性,需要先创建一个对象实现了 MapContext 协议(这个协议是空的),然后在初始化时传入 Mapper 中。

struct Context: MapContext { var importantMappingInfo = "映射时需要知道的额外信息" } class User: Mappable { var name: String? required init?(map: Map){ } func mapping(map: Map){ if let context = map.context as? Context { // 获取到额外的信息 } } } let context = Context() let user = Mapper<User>(context: context).map(JSONString) ObjectMapper + Alamofire

如果网络层你使用的是Alamofire ,并且你希望把返回的结果转换成 Swift 对象,你可以使用 AlamofireObjectMapper 。这是一个使用 ObjectMapper 实现的把返回的 JSON 自动转成 Swift 对象的 Alamofire 的扩展。

ObjectMapper + Realm

ObjectMapper 可以和 Realm 一起配合使用。使用下面的声明结构就可以使用 ObjectMapper 生成 Realm 对象:

class Model: Object, Mappable { dynamic var name = "" required convenience init?(map: Map) { self.init() } func mapping(map: Map) { name <- map["name"] } }

如果你想要序列化相关联的 RealmObject,你可以使用ObjectMapper+Realm。这是一个简单的 Realm 扩展,用于把任意的 JSON 序列化成 Realm 的类(ealm's List class。)

注意:使用 ObjectMappers 的 toJSON 函数来生成 JSON 字符串只在 Realm 的写事务中有效(write transaction)。这是因为 ObjectMapper 在解析和生成时在映射函数( <- )中使用 inout 作为标记( flag )。Realm 会检测到标记并且强制要求 toJSON 函数只能在一个写的事务中调用,即使这个对象并没有被修改。

待完成
  • 改善错误的处理。可能使用 throws 来处理。
  • 相关类的文档完善
  • 安装 Cocoapods

    如果你的项目使用 CocoaPods 0.36 及以上 的版本,你可以把下面内容添加到在 Podfile 中,将 ObjectMapper 添加到你的项目中:

    pod 'ObjectMapper', '~> 2.2' Carthage

    如果你的项目使用Carthage ,你可以把下面的内容添加到 Cartfile 中,将 ObjectMapper 的依赖到你的项目中:

    github "Hearst-DD/ObjectMapper" ~> 2.2 Swift Package Manager

    如果你的项目使用 Swift Package Manager ,那么你可以把下面内容添加到 Package.swift 中的 dependencies 数组中,将 ObjectMapper 的依赖到你的项目中:

    .Package(url: "https://github.com/Hearst-DD/ObjectMapper.git", majorVersion: 2, minor: 2), Submodule

    此外,ObjectMapper 也可以作为一个 submodule 添加到项目中:

  • 打开终端,使用 cd 命令进入项目文件的根目录下,然后在终端中输入 git submodule add https://github.com/Hearst-DD/ObjectMapper.git ,把 ObjectMapper 作为项目的一个 submodule 添加进来。
  • 打开 ObjectMapper 文件,并将 ObjectMapper.xcodeproj 拖进你 app 项目的文件导航中。
  • 在 Xcode 中,文件导航中点击蓝色项目图标进入到 target 配置界面,在侧边栏的 "TARGETS" 下选择主工程对应的target。
  • 确保 ObjectMapper.framework 的部署版本( deployment target )和主工程的部署版本保持一致。
  • 在配置界面的顶部选项栏中,打开 "Build Phases" 面板。
  • 展开 "Target Dependencies" 组,并添加 ObjectMapper.framework 。
  • 点击面板左上角的 + 按钮,选择 "New Copy Files Phase"。将这个阶段重命名为 "Copy Frameworks",设置 "Destination" 为 "Frameworks",最后添加 ObjectMapper.framework 。

  • 分享给小伙伴们:

    本文标签: ObjectMapper/">ObjectMapper

    相关文章

    发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    网友点评