测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可 | MIT |
发布最后发布 | 2017年12月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 Leonardo Armero Barbosa 维护。
Swift 4 中双向 JSON-Dictionary/Object 解析器开发。
如果尚未可用,请安装 CocoaPods
$ [sudo] gem install cocoapods
$ pod setup
如果您已有 cocoapods,请更新它
$ pod update
前往您的 Xcode 项目目录,创建和编辑您的 Podfile 并添加 LabParser
$ cd /path/to/MyProject
$ nano Podfile
platform :ios, '11.0'
use_frameworks!
target 'MyProject' do
pod 'LABParser', '~> 0.2'
end
将其安装到您的项目中
$ pod install
从 .xcworkspace 文件(而不是常用的项目文件)打开您的项目
$ open MyProject.xcworkspace
现在您可以在文件中导入 LABParser 框架。
LABParser 是 Swift 4 中双向 JSON-Dictionary/Object 解析器开发。
为了使用此 pod,您需要将 LABParser 导入到您的模型对象中。
LABParser 通过一个名为 ParcelableModel 的类进行操作。为了正确使用 LABParser,您必须从此类继承所有您的模型。我们鼓励您创建一个 BaseModel 类来导入 LABParser 到其中。此 BaseModel 类必须是开放的,以允许继承。
import Foundation
import LABParser
open class BaseModel: ParcelableModel {
}
现在创建您的模型类。
import Foundation
class User: BaseModel {
var email: String!
var password: String!
required init(){
super.init()
}
init(email: String, password: String) {
super.init()
self.email = email
self.password = password
}
}
所以,假设您在名为 data 的变量中收到一个这样的 JSON User 对象
{
"email": "[email protected]",
"password": "aom123"
}
您可以用以下方式将其转换为您的 swift 模型
let user = User()
do {
user.fromJSON(data)
} catch {
print("The string isn't a valid JSON")
}
必须使用 try catch 块来进行错误处理。
如果您收到 User 对象的字典表示,您可以解析为
let user = User()
user.fromDictionary(data)
然后您可以使用对象的属性
print("Email user is: /(user.email) and password: /(user.password)")
如果您收到一个字典数组,您可以解析为
let userArray: [User] = User.fromDictionaryArray(data)
注意,您的模型属性必须与 JSON/Dictionary 键名完全相同。然而,如果您有任何不与模型匹配的键,您可以覆盖函数 'customKeysName',创建一个自定义键的字典并返回它
override func customKeysName() -> [String: String]? {
return ["email": "user_email",
"password": "U.Password"]
}
要从模型创建字典,您的 ParcelableModel 必须初始化
let user = User(email: "[email protected]", password: "aom123")
因此,创建字典很简单
let userDictionary: [String: AnyObject] = user.toDictionary()
要创建一个从模型来的 JSON 字符串
do {
let jsonString = try user.toJSON()
print("toJSON: " + jsonString)
} catch {
print("The model can't be parsed to JSON format")
}
import Foundation
class Token: BaseModel {
var defaultToken: String!
var attempts: NSNumber?
var refreshToken: String!
required init(){
super.init()
}
}
import Foundation
class User: BaseModel {
var email: String!
var password: String!
var token: Token!
required init(){
super.init()
}
}
{
"email": "[email protected]",
"password": "aom123",
"offices": [
{
"name": "LAB 1",
"address": "Street 1"
},
{
"name": "LAB 2",
"address": "Street 2"
}
]
}
使用属性模型
import Foundation
class Office: BaseModel {
var name: String!
var address: String!
required init(){
super.init()
}
}
import Foundation
class User: BaseModel {
var email: String!
var password: String!
var offices: [Office]!
required init(){
super.init()
}
}
此库基于 ParceSwift 库创建。如果你需要 Swift 1、2 或 3 的解析器,请访问 https://github.com/sebastian989/ParceSwift。
欢迎所有贡献。请与我们联系。
Leonardo Armero Barbosa,
Sebastián Gómez Osorio
MIT 许可协议
版权 (c) 2017 Leonardo Armero Barbosa
在此特此免费授权任何获得本软件及其相关文档文件(“软件”)副本的人员,无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可或出售软件的副本,并允许向软件提供方提供该软件的人员执行上述操作,前提是必须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
该软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定用途适用性以及非侵权性。在任何情况下,作者或版权所有者都不应对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他责任,因软件或软件的使用或其他操作而导致。
本软件。
授权
在此特此授予,免费向任何获得本软件及其相关文档文件(“软件”)副本的人员
未经授权不得将软件用于任何商业目的,除非事先获得有关人员的明确书面同意。
的副本
或实质性部分
软件。
允许他人根据本协议的条款使用或以其他方式执行 Software,前提是所有软件的副本或实质性部分均包含上述版权声明和本许可声明。
上述版权声明和本许可声明
软件的所有副本或实质性部分。
所有权利保留。
未经本版权所有者和/或许可方的明确书面同意,不得以任何形式将本软件的部分或全部副本或实质性部分出租、出售、发放或以其他形式提供给第三方。