Цель-C: Как поместить логические значения в словарь JSON? - PullRequest
7 голосов
/ 19 октября 2010

Я не смог узнать, как вставить логическое значение (чтобы оно отображалось как key:true в строке JSON) в моем NSDictionary:

NSMutableDictionary* jsonDict = [NSMutableDictionary dictionary];
[jsonDict setValue: YES forKey: @"key"];

Приведенный выше код не выполняется (очевидно, потому что YES не является объектом).
Как мне это сделать?

Ответы [ 3 ]

11 голосов
/ 19 октября 2010

Вы вставляете логические значения в словарь, используя NSNumber. В этом случае вы можете напрямую использовать буквальное выражение @YES вместе с литералом словаря, чтобы сделать его однострочным:

NSDictionary *jsonDict = @{@"key" : @YES};

Чтобы закодировать его в JSON, используйте +[NSJSONSerialization dataWithJSONObject:options:error]:

NSError *serializationError;
NSData *jsonData = [NSJSONSerialization
                    dataWithJSONObject:jsonDict
                    options:0 error:&serializationError];
if (!jsonData) {
    NSLog(@"%s: error serializing to JSON: object %@ - error %@",
          __func__, jsonDict, serializationError];
}
7 голосов
/ 19 октября 2010

+ [NSNumber numberWithBool:] - это типичный способ добавить логическое значение в NSDictionary.

6 голосов
/ 07 декабря 2013

С помощью литералов Objective-C [NSNumber numberWithBool: YES] можно представить просто @ YES,

. Вы можете создать свой словарь следующим образом:

    NSDictionary *jsonDict = @{@"key":@YES};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...