У меня есть следующий словарь:
var postJSON = [ids[0]:answersArray[0], ids[1]:answersArray[1], ids[2]:answersArray[2]] as Dictionary
и я получаю:
[2: B, 1: A, 3: C]
Итак, как я могу преобразовать его в JSON?
json
swift
serialization
Орхан Ализаде
источник
источник
NSJSONSerialization
Ответы:
Swift 3.0
В Swift 3 имя
NSJSONSerialization
и его методы изменились в соответствии с Руководством по разработке Swift API .Swift 2.x
Свифт 1
источник
[2: A, 1: A, 3: A]
. Но как насчет фигурных скобок?{"result":[{"body":"Question 3"}] }
dataWithJSONObject
приведет к получению «фигурных скобок» (т.е. фигурных скобок) как части получающегосяNSData
объекта.Вы делаете неправильное предположение. То, что отладчик / игровая площадка отображает ваш словарь в квадратных скобках (то есть, как Cocoa отображает словари), не означает, что формат JSON выводится именно так.
Вот пример кода, который преобразует словарь строк в JSON:
Версия Swift 3:
Чтобы отобразить вышеперечисленное в «довольно напечатанном» формате, измените строку параметров на:
Или в синтаксисе Swift 2:
Выход этого
Или в симпатичном формате:
Словарь заключен в фигурные скобки в выводе JSON, как и следовало ожидать.
РЕДАКТИРОВАТЬ:
В синтаксисе Swift 3/4 приведенный выше код выглядит следующим образом:
источник
Свифт 5:
Обратите внимание, что ключи и значения должны быть реализованы
Codable
. Strings, Ints и Doubles (и более) уже естьCodable
. См. Кодирование и декодирование пользовательских типов .источник
Мой ответ на ваш вопрос ниже
Ответ
источник
Иногда необходимо распечатать ответ сервера для целей отладки. Вот функция, которую я использую:
Пример использования:
источник
Dictionary
Удлинитель Swift 4 .источник
encoding: .ascii
в публичном расширении..utf8
будет намного безопаснее!Свифт 3 :
источник
Ответ на ваш вопрос ниже:
Swift 2.1
источник
Вот простое расширение, чтобы сделать это:
https://gist.github.com/stevenojo/0cb8afcba721838b8dcb115b846727c3
источник
источник