2015-08-11 2 views
0

Я пытаюсь построить словарь с необходимыми параметрами для отправки запроса JSON POST на сервер.Невозможно построить словарь для запроса JSON

let params: [String: AnyObject] = [ 
     "someRootKey": [ 
      "someKey": [ 
       "someKey": someClass.someProperty, 
       "someKey": someClass.someProperty, 
       "someKey": someClass.someProperty 
      ], 

      "someKey": someClass.someProperty, 
      "someKey": someClass.someProperty, 
      "someKey": someClass.someProperty, 
      "someKey": someClass.someProperty, 
      "someKey": someClass.someProperty, 
      "someKey": "someString" 
     ] 
    ] 

Все значения - это строки. Однако я получаю ошибки. Первый: [String: AnyObject] не конвертируется в [String: AnyObject]. И второй (около последнего элемента в словаре): '_' не конвертируется в StringLiteralConvertible. Если я опускаю объявление типа для параметров константа, будет другая ошибка: Тип выражения неоднозначен без дополнительного контекста. Может кто-нибудь объяснить, что здесь не так?

+1

Вы можете попробовать: «someKey»: someClass.someProperty, как! String – Arvind

+0

Ну, это некоторые полезные сообщения об ошибках, которые вы туда попали - к счастью, просто поместите '!' После того, как каждый 'someProperty' исправляет его. Вам необходимо развернуть все опции. И после этого вы также можете удалить объявление типа в первой строке. – luk2302

+0

Может быть, есть синтаксическая ошибка где-то перед этой частью вашего кода? Если 'someClass.someProperty' является необязательной строкой, ваш код должен работать нормально. – hennes

ответ

0

Я был в состоянии сделать запрос с JSON в теле, построив его в виде строки, т.е .:

let bodyData = "{\"name\": \"\(self.student_name)\"}" 
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding) 
Смежные вопросы