7
votes

Objective-C: Comment mettre des valeurs booléennes dans le dictionnaire JSON?

Je ne pouvais pas savoir comment insérer une valeur booléenne (à apparaître comme clé: true code> dans la chaîne JSON) dans mon NSDictionary:

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


0 commentaires

3 Réponses :


8
votes

+ [NSNumber numberWithBool:]. Est la manière typique d'ajouter un booléen à un NSDictionary


0 commentaires

12
votes

Vous insérez booléens dans un dictionnaire en utilisant NSNumber code>. Dans ce cas, vous pouvez utiliser l'expression littérale @YES code> directement, avec un littéral dictionnaire, pour en faire une seule ligne:

NSError *serializationError;
NSData *jsonData = [NSJSONSerialization
                    dataWithJSONObject:jsonDict
                    options:0 error:&serializationError];
if (!jsonData) {
    NSLog(@"%s: error serializing to JSON: object %@ - error %@",
          __func__, jsonDict, serializationError];
}


1 commentaires

Je ne suis pas sûr qu'il réponde au problème ci-dessus. format JSON est différent de la façon dont NSDictionary en raison d'un booléen est représenté. Que feriez-vous s'il y a beaucoup de plate-forme qui envoient des données au format JSON et que vous voulez tous avoir la même représentation (clé: true)?



6
votes

Avec littéraux Objective-C, [NSNumber numberWithBool: OUI] peut être représenté avec seulement @YES,

Vous pouvez créer votre dictionnaire comme ceci: p>

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


0 commentaires