NSJSONSerialization
Вы используете NSJSONSerialization класс, чтобы преобразовать JSON в объекты Основы и преобразовать объекты Основы в JSON.
Объект, который может быть преобразован в JSON, должен иметь следующие свойства:
Объект верхнего уровня
NSArrayилиNSDictionary.Все объекты являются экземплярами
NSString,NSNumber,NSArray,NSDictionary, илиNSNull.Все ключи словаря являются экземплярами
NSString.Числами не является NaN или бесконечность.
Другие правила могут применяться. Вызов isValidJSONObject: или попытка преобразования является категорическими способами сказать, может ли данный объект быть преобразован в данные JSON.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает объект Основы из данных данных JSON.
Объявление
Swift
class func JSONObjectWithData(_data: NSData, optionsopt: NSJSONReadingOptions, errorerror: NSErrorPointer) -> AnyObject?Objective C
+ (id)JSONObjectWithData:(NSData *)dataoptions:(NSJSONReadingOptions)opterror:(NSError **)errorПараметры
dataОбъект данных, содержащий данные JSON.
optОпции для чтения данных JSON и создания объектов Основы.
Для возможных значений посмотрите NSJSONReadingOptions.
errorЕсли ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
Объект Основы от данных JSON в
data, илиnilесли происходит ошибка.Обсуждение
Данные должны быть в одних из 5 поддерживаемых кодировок, перечисленных в спецификации JSON: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE. Данные могут или могут не иметь BOM. Самое эффективное кодирование для использования для парсинга является UTF-8, поэтому если у Вас есть выбор в кодировании данных, переданных этому методу, используйте UTF-8.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает объект Основы из данных JSON в данном потоке.
Объявление
Swift
class func JSONObjectWithStream(_stream: NSInputStream, optionsopt: NSJSONReadingOptions, errorerror: NSErrorPointer) -> AnyObject?Objective C
+ (id)JSONObjectWithStream:(NSInputStream *)streamoptions:(NSJSONReadingOptions)opterror:(NSError **)errorПараметры
streamПоток, из которого можно считать данные JSON.
Поток должен быть открыт и сконфигурирован.
optОпции для чтения данных JSON и создания объектов Основы.
Для возможных значений посмотрите NSJSONReadingOptions.
errorЕсли ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
Объект Основы от данных JSON в
stream.Обсуждение
Данные в потоке должны быть в одних из 5 поддерживаемых кодировок, перечисленных в спецификации JSON: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE. Данные могут или могут не иметь BOM. Самое эффективное кодирование для использования для парсинга является UTF-8, поэтому если у Вас есть выбор в кодировании данных, переданных этому методу, используйте UTF-8.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвраты данные JSON от объекта Основы.
Объявление
Swift
class func dataWithJSONObject(_obj: AnyObject, optionsopt: NSJSONWritingOptions, errorerror: NSErrorPointer) -> NSData?Objective C
+ (NSData *)dataWithJSONObject:(id)objoptions:(NSJSONWritingOptions)opterror:(NSError **)errorПараметры
objОбъект, от которого можно генерировать данные JSON. Не должен быть
nil.optОпции для создания данных JSON.
Посмотрите NSJSONWritingOptions для возможных значений. Передача
0не указать опции.errorЕсли внутренняя ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
Данные JSON для
obj, илиnilесли происходит внутренняя ошибка. Получающиеся данные являются закодированным в UTF-8.Обсуждение
Если
objне произведет допустимый JSON, исключение выдается. Это исключение выдается до парсинга и представляет программную ошибку, не внутреннюю ошибку. Необходимо проверить, произведет ли ввод допустимый JSON прежде, чем вызвать этот метод при помощиisValidJSONObject:.Установка
NSJSONWritingPrettyPrintedопция генерирует JSON с пробелом, разработанным для создания вывода более читаемым. Если та опция не будет установлена, то самый компактный JSON будет сгенерирован.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Пишет данный объект JSON в поток.
Объявление
Swift
class func writeJSONObject(_obj: AnyObject, toStreamstream: NSOutputStream, optionsopt: NSJSONWritingOptions, errorerror: NSErrorPointer) -> IntObjective C
+ (NSInteger)writeJSONObject:(id)objtoStream:(NSOutputStream *)streamoptions:(NSJSONWritingOptions)opterror:(NSError **)errorПараметры
objОбъект записать в
stream.streamПоток, в который можно записать.
Поток должен быть открыт и сконфигурирован.
optОпции для записи данных JSON.
Посмотрите NSJSONWritingOptions для возможных значений. Передача
0не указать опции.errorЕсли ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
Число байтов, записанных в поток, или
0если происходит ошибка.Обсуждение
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает булево значение, указывающее, может ли данный объект быть преобразован в данные JSON.
Объявление
Swift
class func isValidJSONObject(_obj: AnyObject) -> BoolObjective C
+ (BOOL)isValidJSONObject:(id)objПараметры
objОбъект протестировать.
Возвращаемое значение
YEStrueеслиobjможет быть преобразован в данные JSON, иначеNOfalse.Обсуждение
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Опции, используемые при создании объектов Основы из данных JSON — видят
JSONObjectWithData:options:error:иJSONObjectWithStream:options:error:.Объявление
Swift
struct NSJSONReadingOptions : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var MutableContainers: NSJSONReadingOptions { get } static var MutableLeaves: NSJSONReadingOptions { get } static var AllowFragments: NSJSONReadingOptions { get } }Objective C
enum { NSJSONReadingMutableContainers = (1UL << 0), NSJSONReadingMutableLeaves = (1UL << 1), NSJSONReadingAllowFragments = (1UL << 2) }; typedef NSUInteger NSJSONReadingOptions;Константы
-
MutableContainersNSJSONReadingMutableContainersУказывает, что массивы и словари создаются как непостоянные объекты.
Доступный в OS X v10.7 и позже.
-
MutableLeavesNSJSONReadingMutableLeavesУказывает, что листовые строки в графе объектов JSON создаются как экземпляры
NSMutableString.Доступный в OS X v10.7 и позже.
-
AllowFragmentsNSJSONReadingAllowFragmentsУказывает, что синтаксический анализатор должен позволить объекты верхнего уровня, которые не являются экземпляром
NSArrayилиNSDictionary.Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
-
Опции для записи данных JSON.
Объявление
Swift
struct NSJSONWritingOptions : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var PrettyPrinted: NSJSONWritingOptions { get } }Objective C
enum { NSJSONWritingPrettyPrinted = (1UL << 0) }; typedef NSUInteger NSJSONWritingOptions;Константы
-
PrettyPrintedNSJSONWritingPrettyPrintedУказывает, что данные JSON должны быть сгенерированы с пробелом, разработанным для создания вывода более читаемым. Если эта опция не установлена, самое компактное представление JSON сгенерировано.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
