Отправка массива json body с массивами внутри него (Alamofire, Swift, iOS) - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу отправить тело json на свое промежуточное ПО.сначала это работает хорошо (обратите внимание, что "tema" и "emailGroup" не были массивом).но после некоторых изменений в моем бэкэнде, я должен отправить этот тип json

[{
    "ID": "",
    "Name": "Artikel BU CE - Visit HoB Topic",
    "ChannelType": 0,
    "PublishDate": "2018-09-21T01:00:00Z",
    "Headline": null,
    "Content": null,
    "EmailSubject": null,
    "EmailUrl": null,
    "Mention": null,
    "PostLink": null,
    "ChannelActivityMobileId": null,
    "HashTag": null,
    "Tema": [
        {
            "Value": 6
        }
    ],
    "EmailGroup": [
        {
            "ID": "2c53ea1f-6ebe-e811-a977-000d3aa00fc2",
            "Name": "TV Broadcast",
            "List_EmailListModels": null
        }
    ],
    "ApprovalStatus": 0,
    "ApprovalNote": null,
    "EmployeeId": null,
    "EmployeeLevel": 0
}]

вот мой код

let parameters = [["ID" : "", SerializationKeys.channelMobileId : channel.mobileId, SerializationKeys.name : activity.activityName, "ApprovalStatus" : channel.channelStatus, SerializationKeys.channelType : channel.channelType, SerializationKeys.publish_date : channel.publishDate, SerializationKeys.content : channel.content,  SerializationKeys.emailSubject : channel.emailSubject, SerializationKeys.emailURL : channel.emailURL, SerializationKeys.hashtag : channel.hastag, SerializationKeys.mention : channel.mention, SerializationKeys.note : channel.note, SerializationKeys.postLink : channel.postLink, SerializationKeys.tema : [tema]] as [[String : Any]]

где tema

var tema = [String : Int]()

iполучено сообщение об ошибке

[Any] не преобразуется в '[[String: Any]]';Вы хотели использовать как!вызвать downcast?

и после того, как я изменил "на" на "как!", он говорит:

Ожидается ";"разделитель

, где точка с запятой должна находиться рядом с "SerializationKeys.tema: [tema]".Пожалуйста, помогите мне.Спасибо

РЕДАКТИРОВАТЬ enter image description here

1 Ответ

0 голосов
/ 25 сентября 2018

Я думаю, вы ошибочно добавили ] около

, SerializationKeys.postLink : channel.postLink],

Возможно, вы захотите это

let parameters:[[String:Any]] = [["ID" : "",
                   SerializationKeys.channelMobileId : channel.mobileId,
                   SerializationKeys.name : activity.activityName,
                  "ApprovalStatus" : channel.channelStatus,
                   SerializationKeys.channelType : channel.channelType,
                   SerializationKeys.publish_date : channel.publishDate, 
                   SerializationKeys.content : channel.content,  
                   SerializationKeys.emailSubject : channel.emailSubject,
                   SerializationKeys.emailURL : channel.emailURL,
                   SerializationKeys.hashtag : channel.hastag, 
                   SerializationKeys.mention : channel.mention, 
                   SerializationKeys.note : channel.note, 
                   SerializationKeys.postLink : channel.postLink,
                   SerializationKeys.tema : [tema]
               ]]

Примечание: Я настоятельно рекомендую использоватьCodable с struct моделями для вашего случая

...