나는 내 JSON을 쉽게 직렬화하기위한 확장 메서드를 작성하고 싶습니다. 다음 클래스가 있습니다.모델 확장으로 JSON
class Evaluation: Object {
var name: String?
var isFinalized: Bool?
var id: Int?
var idString: String? {
get{
return String(describing:self.id!)
}
}
convenience init(json: JSON?) {
self.init()
if let json = json {
name = json["evaluationDescription"].rawString()
isFinalized = json["evaluationFinalized"].intValue == 0 ? false : true
id = json["evaluationID"].intValue
}
}
override static func primaryKey() -> String? {
return "id"
}
}
이것은 내가 작성한 확장 프로그램입니다. 그러나이 파일은 돌연변이가 발생하여 전 세계적으로 사용할 수 있기를 바랍니다. 그래서 모든 모델에 동일한 코드를 사용할 수 있습니다.
extension Evaluation {
func serialize(from json: JSON){
var temp = [Evaluation]()
for (_,j): (String,JSON) in json {
temp.append(Evaluation(json: j))
}
}
}
나는 방법
mutating
을 시도했지만 '돌연변이'
클래스의 메소드에 유효하지 않은 오류 ...
요약하면, 내가 원하는있어 (json은 다소 의사 코드 임) ...
var json = "{'name':'test','isFinalized','0','id':'532'}"
var evaluations = [Evaluations]()
evaluations.serialize(from: json)
답변 해 주셔서 감사합니다. 나는 그것을 시도 할 것이지만, 나는 Realm을 사용하고있다. 그래서 초기화 자나 기본값을 사용해야한다. – TheValyreanGroup
간단한 메모. structs는 많은 경우에 좋은 생각이지만 Realm 모델 유형은 클래스 여야합니다. – AustinZ