0
나는 데이터베이스에서 테이블의 내용을 반환하는 mySQL 데이터베이스와 PHP 스크립트를 가지고 있습니다. 이 데이터를 문자열로 가지고 배열에 넣을 수는 있지만 커스텀 NSObject 클래스에 넣는 방법에 대해서는 확실하지 않습니다. 내가 이것을 할 수있는 방법이 있습니까?SBJsonParser가 서버의 응답을 사용자 정의 클래스에 저장합니다.
나는 데이터베이스에서 테이블의 내용을 반환하는 mySQL 데이터베이스와 PHP 스크립트를 가지고 있습니다. 이 데이터를 문자열로 가지고 배열에 넣을 수는 있지만 커스텀 NSObject 클래스에 넣는 방법에 대해서는 확실하지 않습니다. 내가 이것을 할 수있는 방법이 있습니까?SBJsonParser가 서버의 응답을 사용자 정의 클래스에 저장합니다.
문자열이 JSON 객체의 배열 인 경우 SBJsonParser 메서드 objectWithString:
을 사용하면 NSDictionary 객체의 NSArray를 반환 할 수 있습니다. 그런 다음 배열을 반복하고 배열의 각 요소에서 사용자 정의 객체를 만들 수 있습니다. 각 값을 추출하려면 NSDictionary 메서드 objectForKey:
을 사용하십시오.
SBJsonParser *json = [[SBJsonParser new] autorelease];
NSError *jsonError = nil;
NSArray *parsedJSON = [json objectWithString:response error:&jsonError];
// this example just creates a custom object from the first element in the array
NSDictionary dictionary = [parsedJSON objectAtIndex:0]
CustomObject *myCustomObject = [[CustomObject alloc] init];
myCustomObject.firstname = [dictionary objectForKey:@"firstname"];
myCustomObject.lastname = [dictionary objectForKey:@"lastname"];
고마워, 너무 간단 해! 그래서 테이블을 반복하기 위해, 나는 for 루프에 코드를 놓고 0을 i로 변경하기 만하면됩니까? –
네, 맞습니다. – jonkroll
감사합니다. 나는 테이블의 첫 번째 행을 위해 노력하고 있지만 문제가 있습니다. 'NSLog (@ "EVENT NAME : % @", [dictionaryObjectForKey : @ "eventName"]);'를 실행하면 돌아옵니다 (null). 비동기 적으로 요청을 받고 있으므로 데이터를 가져올 시간이 없다고 생각했습니다. 이것을 동기식으로 변경하면 응용 프로그램이'[__NSCFDictionary objectAtIndex :] : 인식 할 수없는 선택기가 인스턴스 0x6b1f8b0 '에 전송되어 충돌합니다. 어떤 아이디어? –