2013-02-26 2 views
1

즉, (null) 대신 null이 포함 된 문자열이 필요합니다.null 값을 사용하여 NSString 채우기

예를 들어

:

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

양식과 같은 요청 : 나는 무기 호 무기 호 교체

{ "ename" : null } 

같이 할 필요

{ "ename" : (null) } 

그러나, NULL, [ NSNull null]은 모두 동일한 출력 문자열과 같습니다.

이 방법이 있습니까? 문제는 서버에 내 요청을 보내면 구문 ​​분석을 시도하지만 null 주위의 괄호가 마음에 들지 않는 경우에 발생합니다.

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

또는 매크로를 만들 :

+2

당신은 스스로를 구축하는 것보다 실제 JSON 인코더를 사용하여 더 나을 것입니다. iOS 5 이상에는 [NSJSONSerialization] (http://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class/)이 함께 제공됩니다. –

+0

'stringWithFormat : @ "\"ename \ ": null}"'을 고려해 보셨습니까? –

답변

2

당신은 stringWithFormat에 인수에 특수 처리를 필요

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

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

대단히 고마워요! – user1366911

관련 문제