Структуры правильные
Я думаю, проблема в том, как вы заполняете свои структуры (не показано в вашем вопросе).
Ошибка
Это неправильный код, который я предполагаю , который вы используете.
В частности, ошибка заключается в способе заполнения значения dictionaries
. Фактически вы создаете массив с одним словарем, имеющим все значения. Вместо этого вы должны создать массив словарей, в котором каждый словарь имеет одну отдельную запись.
let dictionaries = [["firstName" : "John", "lastName": "Doe", "email": "john.doe567@gmail.com", "phone": "12345678901"]]
let ecData = EmergencyContactData(contact: dictionaries)
let elm = UserEmergencyContactRequest(userID: "userID", ecData: ecData)
if
let data = try? JSONEncoder().encode(elm),
let string = String(data: data, encoding: .utf8) {
print(string)
}
{"userID":"userID","ecData":{"contact":[{"email":"john.doe567@gmail.com","firstName":"John","lastName":"Doe","phone":"12345678901"}]}}
Исправление
Как сказано выше, давайте попробуем поместить по одной отдельной записи в каждый словарь. .
let dictionaries = [["firstName" : "John"], ["lastName": "Doe"], ["email": "john.doe567@gmail.com"], ["phone": "12345678901"]]
let ecData = EmergencyContactData(contact: dictionaries)
let elm = UserEmergencyContactRequest(userID: "userID", ecData: ecData)
if let data = try? JSONEncoder().encode(elm),
let string = String(data: data, encoding: .utf8) {
print(string)
}
Теперь мы получаем ожидаемый результат.
{"userID":"userID","ecData":{"contact":[{"firstName":"John"},{"lastName":"Doe"},{"email":"john.doe567@gmail.com"},{"phone":"12345678901"}]}}