MJModel 0.1.1

MJModel 0.1.1

Raymond HRaymond H 维护。



MJModel 0.1.1

  • raymond-hl

MJModel

MJModel 是一个框架,允许您轻松地将模型转换为 JSON 字符串或将 JSON 字符串转换为模型。

MJModel 支持类和结构体,无需继承自 NSObject。通过替换 NSObject 中的 KVC,它直接操作内存以获取或设置值。它使用 Swift 中的 Mirror 来获取模型中的所有属性。

MJModel 被定义为协议,因此您可以像使用协议一样使用它。只需对现有的模型添加一个扩展即可。

CI Status codecov Version License Platform Carthage compatible Gitter

要求

  • 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文件。