2016-08-02 4 views
0

문자열로 serialize해야하는 jsonapi 객체가 있습니다.비어있는 jsonapi 객체를 직렬화하는 방법

{\n \"data\" : [\n\n ]\n} 

하지만 이것이 내가 문자열로 JSON 개체를 변환하는 데 사용하고 코드입니다

Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '*** +[NSJSONSerialization dataWithJSONObject:options:error:]:  
Invalid top-level type in JSON write' 

오류가 발생합니다

NSError * error; 
NSData * jData = [NSJSONSerialization dataWithJSONObject:[notification.userInfo objectForKey:@"data"] 
options:NSJSONWritingPrettyPrinted error:&error]; 

NSString *jString = [[NSString alloc] initWithData:jData encoding:NSUTF8StringEncoding]; 

희망이 사람이 나를 도울 수를 문제가 발생했습니다. (\ 및 \ n을 수동으로 제거하지 않아도됩니다.

+0

여기 뭔가가 매우 혼란 스럽습니다. 표시 한 내용은 JSON 문서를 문자열로 변환 한 것으로, JSON 문서는 단일 키 "data"가있는 사전이고 빈 값 배열 인 단일 값입니다. 나는 당신이 실제로하려고하는 것이 가장 사소한 생각이 아니다. – gnasher729

+0

실제로 json 사전이 값을 실제로 보유 할 때 문제가 발생하지 않습니다. 내가 배열을 지우고 보낼 때, 이런 일이 일어난다. ic annot이 그것을 해결하면 빈 객체에 대한 값을 전달하기 위해 다른 메소드를 호출해야 할 것이다. – s5v

답변

1

json 객체를 문자열로 변환하려면 먼저 NSData으로 가져온 다음 NSUTF8StringEncoding의 인코딩을 사용하여 NSString으로 변환해야합니다.

NSDictionary *jsonDict = {\n \"data\" : [\n\n ]\n} 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONWritingPrettyPrinted error:&error]; 
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding] 
+0

내 게시물이 이해할 수 없었는지 확실하지 않지만 내가 한 일은 tahts이고 오류가 발생하여 전체 게시물을 포함하도록 내 게시물을 수정했습니다. – s5v

+0

지금 편집을 보았습니다. 이것을 디버그하여 올바른지 확인하십시오. [notification.userInfo objectForKey : @ "data"]'? –

+0

해결되었습니다. 고맙습니다. – s5v

관련 문제