У меня следующая структура:
struct PatientEntity{
let patientId: String
let firstName: String
let lastName: String
let gender: String
let birthDate: String?
let medicalDiagnosis: String?
let therapyDiagnosis: String?
let therapyGoals: String?
}
Когда я пытаюсь сериализовать его в json, чтобы отправить его на сервер, я получаю исключение из-за необязательного слова в bithdate.Я попытался удалить необязательное слово с помощью следующего кода, но безуспешно:
if let bithDate = self.patientBithDateTextField.text {
newPatient: PatientEntity = PatientEntity(
patientId: self.patientIDTextField.text!,
firstName: self.patientNameTextField.text!,
lastName: self.patientLastNameTextField.text!,
gender: self.getSelectedGender(),
birthDate: bithDate,
medicalDiagnosis: nil,
therapyDiagnosis: nil,
therapyGoals: nil
)
...call API
}
Мой код сериализации:
urlRequest.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: [])
, где значение параметра:
case .createPatient(let newPatient):
return ["patient": newPatient]
Вывод на печать выглядит следующим образом:
Параметры в строке POST: ["Patient": PatientEntity (PatientId: "fff", firstName: "rrr", lastName: "rrrr", пол: «Женщина», Дата рождения: Необязательно («2018-05-23»), медицинский Диагноз: ноль, терапияДиагностика: ноль, терапияЦели: ноль)]
Что необходимо сделать, чтобы пройтисериализация объекта не так ли?
Исключение составляет:
Завершение приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: 'Неверный тип в записи JSON (_SwiftValue)'