//支持嵌套数组,枚举
import UIKit
import HandyJSON
//枚举
enum Grade: Int,HandyJSONEnum {
case One = 1
case Two = 2
case Three = 3
}
enum Gender: String,HandyJSONEnum {
case Male = "Male"
case Female = "Female"
}
//内部嵌套模型
struct Teacher: HandyJSON {
var name: String?
var age: Int?
var height: Int?
var gender: Gender?
}
//数组里面的struct
struct Subject: HandyJSON {
var name: String?
var id: String?
var credit: Int?
var lessonPeriod: Int?
}
//模型
class Student: HandyJSON {
var id: String?
var name: String?
var age: Int?
var grade: Grade = .One
var height: Int?
var gender: Gender?
var className: String?
var teacher: Teacher = Teacher()
var subjects: [Subject]? //数组里面装的struct
var seat: String?
required init(){}
}
//模型类
class YGHandyJsonTest: NSObject {
//数据
let jsonStr = "{\"id\":\"585\",\"json_name\":\"Tom Li\",\"age\":18,\"grade\":2,\"height\":180,\"gender\":\"Female\",\"className\":\"A\",\"teacher\":{\"name\":\"Lucy He\",\"age\":28,\"height\":172,\"gender\":\"Female\",},\"subjects\":[{\"name\":\"math\",\"id\":18000324583,\"credit\":4,\"lessonPeriod\":48},{\"name\":\"computer\",\"id\":18000324584,\"credit\":8,\"lessonPeriod\":64}],\"seat\":\"4-5-7\"}"
func jsonToModel() {
if let student = Student.deserialize(from: jsonStr){
print(student.toJSON())
}
}
}