测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | Apache 2 |
发布最后发布 | 2015 年 10 月 |
SPM支持 SPM | ✗ |
由 corinne krych 维护。
此模块目前使用 Xcode 7 构建,并支持 iOS7 [1],iOS8,iOS9。
以 'easy way' 将 'Swift' 对象序列化和反序列化回它们的 JSON 表示形式。
项目信息 | |
---|---|
许可证 | Apache 许可证,版本 2.0 |
构建 | Cocoapods |
文档 | https://aerogear.org/docs/guides/aerogear-ios-2.X/ |
问题跟踪器 | https://issues.jboss.org/browse/AGIOS |
邮件列表 | aerogear-users (订阅) |
aerogear-dev (订阅) |
注意 [1]:Cocoapod 中央存储库支持从 iOS8+ 开始的动态库。如果您想在 iOS7 上部署,请使用 master 源中的 areoger-ios-http,其 podspec 指向 iOS7。
这是一个典型的示例用法
class Contact : JSONSerializable {
var first: String?
var last: String?
var addr: Address?
required init() {}
class func map(source: JsonSZ, object: Contact) {
object.first <= source["first"]
object.last <= source["last"]
object.addr <= source["addr"]
}
}
class Address: JSONSerializable {
var street: String?
var poBox: Int?
var city: String?
var country: String?
var arr:[String]
required init() {}
class func map(source: JsonSZ, object: Address) {
object.street <= source["street"]
object.poBox <= source["poBox"]
object.city <= source["city"]
object.country <= source["country"]
}
}
// construct object
let address = Address()
address.street = "Street"
address.poBox = 100
address.city="New York"
address.country = "US"
let user = User()
user.first = "John"
user.last = "Doe"
// assign Address to User
user.addr = address
// initialize serializer
let serializer = JsonSZ()
// serialize ToJSON
let JSON = serializer.toJSON(user)
// ..send json to server
// serialize fromJSON
let user = serializer.fromJSON(JSON, to:User.self)
// user now should be initialized
println(user.first!)
...
只要您的模型对象实现了 JSONSerializable
协议及其所需的 init
和 map
方法,`JsonSZ` 类应该能够将您的对象序列化和反序列化为 JSON。该库支持所有原始类型,包括数组、字典以及对象之间的关系(如上例中的 User,Address 显示的)。有关更多用法示例,请参阅我们的 单元测试。
试一试,并让我们知道它是否帮助了您的项目!
最后,我们想要感谢和认可现有的序列化库 ObjectMapper 和 SwiftMapper,为我们提供了一个初始的引导和基于我们开发该库的想法。谢谢你们!
要将库添加到您的项目中,您可以使用 Cocoapods 或在项目中手动安装。下面分别提供说明。
按照以下步骤将库添加到您的 Swift 项目中
git submodule add https://github.com/aerogear/aerogear-ios-jsonsz.git
aerogear-ios-jsonsz
文件夹,并将 AeroGearJsonSZ.xcodeproj
拖入 Xcode 的文件导航器。AeroGearJsonSZ.framework
。+
按钮,并选择“新建拷贝文件阶段”。将此新阶段重命名为“拷贝框架”,将“目标位置”设置为“框架”,并添加 AeroGearJsonSZ.framework
。有关当前版本的更多详细信息,请参阅我们的文档。
如果您想帮助开发 Aerogear,可以加入我们的开发人员邮件列表,在 Freenode 上加入 #aerogear,或在 Twitter @aerogears 上向我们喊话。
还可以花时间浏览贡献指南
加入我们的用户邮件列表,以便解答任何问题或获得帮助!我们很希望您喜欢使用 AeroGear 开发应用程序!
如果您发现了一个错误,请在 Jira 上为我们创建一个工单,并包含一些重现步骤。