2014-09-23 3 views
1

나는 이것에 대해 궁금해했다. 잠시 동안 가지고 있었던 JSON 문제 대 NSLog.NSLog로 JSON을보고 실제 형식을 볼 수 있습니까?

그래서 responseObject (유형은 id)입니다. 간단히 NSLog입니까?

내가 할 때, 나는 JSON과 비슷한 텍스트를 보았지만, 큰 문제가있다. 실제 JSON이 문제가되는지 아니면 NSLog이 실패하는지 나는 모른다.

NSLog에 대해 내가 신뢰할 수 있습니까? 또는 "웹 방식"으로 인쇄하고 싶다면 다른 것을해야합니까?

NSData *data = [NSData dataWithContentsOfURL:someURL]; 

당신이 일반적으로 오브젝티브 C 객체로 그것을 "분석"을 사용하여 :

NSError *error = nil; 
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data 
                options:kNilOptions 
                 error:&error]; 

그러나 당신을 아마 사용하면 HTTP 응답의 내용을 포함하는 NSData 객체를했으면

+0

일반적으로 JSON은 NSData 객체로 수신됩니다. NSLog하려면 (의미있는 형식으로) 먼저 NSString (initWithData : encoding :)으로 변환해야합니다. 또는 NSJSONSerialization을 사용하여 사전/배열로 변환하여 기록 할 수 있습니다. JSON 표현과 정확히 같지는 않지만 매우 가깝습니다. –

+4

(당신이 말하는 "거대한 이슈"는'()'이 있어야 할 곳에'[]','=''',''가 있어야 할 곳은',' 그리고 일부 누락 된 따옴표 기호를 다음 NSArray/NSDictionary 표현을 덤프 및 "정상적인". –

+0

괜찮습니다! 그래, 그게 나를 괴롭히는 것이었다. 하지만 나중에 코드에서 해당 데이터에 오류가 있었기 때문에 원본을 잡으려고했는데 내 오류가 json 이전인지 게시 된 것인지 알고 싶었습니다. 이제 JSON은 괜찮습니다. :) –

답변

4

, 문자열로 변환하여 데이터 응답을 기록 할 수 있습니다.

NSString *jsonString = [[NSString alloc] initWithData:data 
              encoding:NSUTF8StringEncoding]; 
NSLog(@"Response JSON=%@", jsonString); 
1

당신의 responseObject가 id 형이고 NSLog로 그것들을 인쇄하려고한다면 그것은 단지 객체 이름을 반환합니다. 이 당신을 도와 How to output JSon data in Objective-C

희망 :

는 JSON에 대한 자세한 내용은 아래 URL을 따르 얻으려면.

0

잘 형식화 된 응답 로그는 다음과 같이하십시오.

id jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
NSLog(@"Response : %@",[jsonResponse description]); 

희망.