2016-06-24 4 views
0

Я отправляю массив в конечную точку API, но массив не работает правильно. Вот что у меня есть:Сериализация массива перед отправкой его в конечную точку API

Пользователь: имени электронной

Так что в моем случае у меня есть быстр массив из двух пользователей:

po userArray 
▿ 2 elements 
    ▿ [0] : <User: 0x7fa3ab597fd0> 
    ▿ [1] : <User: 0x7fa3ab597bb0> 

JSON, что сервер ожидает это:

{users: [ {name:'john', email:'[email protected]'}, {name:'tom', email: '[email protected]' }] 

Что я посылаю:

'users' : userArray 

Но, похоже, проблема с сериализацией. Что сервер получает от меня это:

'users': ['MyApp.User', 'MyApp.User'] 

Я использую AlamoFire отправить мой запрос PUT.

Нужно ли преобразовывать массив в JSON перед его отправкой? Я новичок в Swift, и любая помощь приветствуется.

+0

вам нужно показать код конкретно, как добавить Params отправить – Shubhank

ответ

1

Вы должны переопределить description свойство для пользовательского класса User

class User : NSObject 
{ 
    var name : String 
    var age : String 

    override var description : String 
    { 
     get{ 
     return ["name" : self.name, "age" : self.age].description 
     } 
    } 
} 
+0

Итак, класс должен унаследовать и от NSObject? Пользователь является подклассом BaseModel в моем случае, и поэтому он не позволяет мне выполнять множественное наследование. Если я наследую NSObject на моей BaseModel, некоторые из моих других классов, у которых есть свойство описания, терпят неудачу. Какие-либо предложения? – Prabhu

+0

Не имеет значения, наследуете ли вы NSObject. Вам просто нужно переопределить свойство описания везде, я делаю то же самое в своем проекте. или вы можете использовать объекты типа «AnyObject» вместо написания собственного класса –

2

Вам необходимо преобразовать объект User в словарь. Чем вы должны добавить в качестве значения не массив пользователей, а массив словарей.

+0

Не могли бы вы показать мне, как? Новый быстрый пользователь здесь. – Prabhu

Смежные вопросы