2012-04-04 2 views
0

This answer은 JSONObject를 만드는 방법을 보여줍니다.iOS5에서 JSONObject 만들기

NSString *jsonString = @"[{\"id\": \"1\", \"name\":\"Aaa\"}, {\"id\": \"2\", \"name\":\"Bbb\"}]"; 
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSError *e = nil; 
NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&e]; 
NSLog(@"%@", json); 

출력은 json 개체처럼 보입니다. 그러나 나는 다음과 같은 시도 :

NSLog(@"%@", [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingPrettyPrinted error:nil ]); 

내가 돌아 왔을

< 5b0a2020 7b0a2020 20202269 6422203a 20223122 2c0a2020 2020226e 616d6522 203a2022 41616122 0a20207d 2c0a2020 7b0a2020 20202269 6422203a이었다 무엇 20223222 2c0a2020 2020226e 616d6522 203a2022 42626222 0a20207d 0a5d>

이것은 실제 JSONObj가 아닌 것으로 나타납니다. ect. 당신은 어떻게 만드나요?

답변

3

그것은 수도 겠다는 된 JSONObject 수 있지만 NSLog 원시 데이터를 표시하는 방법을 알고하지 않습니다 ... NSLog의 "%@" 비트 인코딩이 아닌을 NSData와는 NSString을 원한다.

상황이 정상적으로 처리되었는지 확인하기 위해 머리 꼭대기에서 볼 수있는 두 가지 방법이 있습니다.

# 1)은 [isValidJSONObject:] 방법을 사용

또는

# 2) 재 해석 방금 만든 JSON 객체를하고 당신이 그것을 만든 방법을 제공되는지 확인합니다.

NSError * error = nil; 
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingPrettyPrinted error:&error ]; 
if(jsonData == nil) 
{ 
    NSLog(@"error in parsing json data is %@", [error localizedDescription]); 
} else { 
    NSString * jsonString = [[NSString alloc] initWithData: jsonData encoding: NSUTF8StringEncoding];  
    NSLog("json data is %@", jsonString); 
} 
+0

NSString의 NSArray가있는 경우 전체 배열을 키에 할당 한 다음이를 JSON 객체로 변환하는 방법은 무엇입니까? – neuromancer

+0

JSONObject는 단지 NSArray입니까? – neuromancer

+0

데이터 또는 스트림 (배열이나 사전이 아닌)에서 NSJSONSerialization을 통해 JSON 객체를 만들 수 있습니다. JSON 변환을 수행하려면 배열을'NSData'로 변환해야합니다. 보십시오 [이 관련된 질문 및 당신은 당신이 찾는 대답을 찾을 수 있습니다] (http://stackoverflow.com/questions/8356842/how-to-use-nsjsonserialization). –