2013-02-26 3 views
1

Короче говоря, мне нужна строка, которая содержит null, а не (null).Заполнение NSString нулевым значением

Например:

NSString *jsonRequest = [NSString stringWithFormat:@"{\"ename\":%@}", nil]; 

формирует запрос, который выглядит следующим образом:

{ "ename" : (null) } 

Но мне нужно, чтобы она выглядела как

{ "ename" : null } 

Заменяя ноль с Ниле, NULL, [ NSNull null] все равны одной и той же выходной строке.

Есть ли способ сделать это? Проблема возникает, когда я отправляю свой запрос на сервер, и он пытается разобрать его, но не любит скобки вокруг нулевого.

+2

Вы бы лучше использовать реальный JSON кодировщика, чем строить его самостоятельно. iOS 5 и более поздние корабли с одним: [NSJSONSerialization] (http://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class/). –

+0

Вы считали 'stringWithFormat: @" \ "ename \": null} "'? –

ответ

2

Вам нужна специальная обработка на аргументы stringWithFormat:

NSString *ename = nil; 
NSString *jsonRequest = [NSString stringWithFormat:@"{\"ename\":%@}", 
         ename != nil ? ename : @"null"]; 

Или создать макрос:

#define STR_OR_NULL(x) (x) != nil ? (x) : @"null" 

NSString *jsonRequest = [NSString stringWithFormat:@"{\"ename\":%@}", STR_OR_NULL(ename)]; 
+0

Большое спасибо! – user1366911