Ios 使用空值填充NSString

Ios 使用空值填充NSString,ios,objective-c,json,nsstring,Ios,Objective C,Json,Nsstring,简而言之,我需要一个包含null而不是(null)的字符串 例如: NSString *jsonRequest = [NSString stringWithFormat:@"{\"ename\":%@}", nil]; 形成一个如下所示的请求: { "ename" : (null) } 但我需要它看起来像 { "ename" : null } 将nil替换为nil,NULL,[NSNull-NULL]都等同于相同的输出字符串 有没有办法做到这一点?当我将请求发送到服务器,服务器试图对其进行

简而言之,我需要一个包含null而不是(null)的字符串

例如:

NSString *jsonRequest = [NSString stringWithFormat:@"{\"ename\":%@}", nil];
形成一个如下所示的请求:

{ "ename" : (null) }
但我需要它看起来像

{ "ename" : null }
将nil替换为nil,NULL,[NSNull-NULL]都等同于相同的输出字符串


有没有办法做到这一点?当我将请求发送到服务器,服务器试图对其进行解析,但不喜欢空括号时,就会出现问题。

您需要对
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)];

您最好使用真正的JSON编码器,而不是自己构建。iOS 5及更高版本附带一个:。您是否考虑过
stringWithFormat:@“\“ename\”:null}”