2013-02-26 85 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