MJModel
MJModel 是一个框架,允许您轻松地将模型转换为 JSON 字符串或将 JSON 字符串转换为模型。
MJModel 支持类和结构体,无需继承自 NSObject。通过替换 NSObject 中的 KVC,它直接操作内存以获取或设置值。它使用 Swift 中的 Mirror 来获取模型中的所有属性。
MJModel 被定义为协议,因此您可以像使用协议一样使用它。只需对现有的模型添加一个扩展即可。
要求
- iOS 8.0+ / Mac OS X 10.9+
- Xcode 11.0+
- Swift 5.0+
安装
CocoaPods
pod 'MJModel'
Carthage
github "Musjoy/Swift-MJModel" "master"
Swift Package Manager
将以下内容添加到您的 Package.swift 文件的依赖中
dependencies: [
.package(url: "https://github.com/Musjoy/Swift-MJModel.git", from: "0.1.0"),
]
使用方法
导入
import MJModel
模型转为JSON字符串
class BaseClass : Model {
var name : String?
var age : Int?
required init() {}
}
let model = BaseClass()
model.name = "string"
model.age = 1
print(model.toDictionary())
print(model.toJSONString()!)
JSON字符串转模型
let jsonString = "{\"name\":\"string\",\"age\":1}"
let modelResult = BaseClass.initWith(jsonString)!
print(modelResult.name!)
print(modelResult.age!)
扩展其他
struct ExtendOtherStruct {
var name : String?
var age : Int?
}
extension ExtendOtherStruct : Model {}
var model = ExtendOtherStruct()
model.name = "string"
model.age = 1
let jsonString = model.toJSONString();
let modelResult = ExtendOtherStruct.initWith(jsonString!)!
print(jsonString!)
print(modelResult.name!)
print(modelResult.age!)
作者
raymond-hl, [email protected]
许可证
MJModel可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。