2013-02-26 66 views
1

簡而言之,我需要一個包含null的字符串,而不是(null)。填充空值的NSString

例如:

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

形式,看起來像一個請求:

{ "ename" : (null) } 

但我需要它看起來像

{ "ename" : null } 

與無更換零,NULL,[ NSNull null]全部等同於相同的輸出字符串。

有沒有辦法做到這一點?當我將請求發送到服務器並嘗試解析它時,問題就出現了,但不喜歡null的括號。

+2

你會更好使用JSON實比編碼器親自構建。 iOS 5和更高版本附帶一個:[NSJSONSerialization](http://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class/)。 – 2013-02-26 17:04:00

+0

你考慮過'stringWithFormat:@「\」ename \「:null}」'? – 2013-02-26 18:06:51

回答

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 2013-02-26 19:04:04