2012-08-01 3 views
0

현재 설계중인 응용 프로그램은 SQL Server 2008 데이터베이스에서 선택하는 PHP 스크립트에 의해 반환 된 JSON 개체를 사용합니다. 내가 겪고있는 문제는 데이터베이스가 특정 필드 값을 잃어 버렸을 때 JSON에서 null로 반환된다는 것입니다. 그런 다음 JSON (NSJSONSerialization 사용)을 구문 분석 할 때 사전에 값이 들어 있습니다. 이 사전을 사용하여 내보기를 채울 때 null 값이 발생하면 응용 프로그램이 충돌합니다.iOS, PHP 및 JSON에서 SQL Server의 null 값 사용

이 문제를 무시하는 가장 쉬운 방법은 무엇입니까? 나는 PHP가 데이터를 JSON으로 반환하기 전에 모든 null을 빈 문자열로 바꿀 수 있다고 생각한다. 그러나, 그것은 최선의 해결책이 아닐 수도 있습니다. iOS를 체크인하는 간단한 방법이 있습니까?

도움 주셔서 감사합니다.

답변

1

null 값을 확인하려면 객체가 [NSNull null]인지 확인해야합니다.

id object = [dict objectForKey:@"key"]; 
if(object == [NSNull null]) 
{ 
    //Handle null value 
} 
+0

전체 사전을 확인하는 방법이 있습니까? 아니면 키를 사용하여 객체를 꺼내고 확인해야합니까? –

+0

각 객체를 확인해야합니다. json을 파싱 한 직후 각 객체를 검사하고 기본값으로 제거/대체하거나 클래스가 사용하는 클래스에 NSNull 처리를 추가하여 값을 표시 할 수 있습니다. – Joe

+0

이것은 매우 나쁩니다! 다른 방법은 없지만 null 값을 명시 적으로 확인해야한다고 생각합니다. 왜 iOS가 안드로이드처럼 null을 null로 간주하지 않는지 궁금해합니다! 것은 우리가 NSArray * array = [dict objectForKey : @ "key"]; 값이 null이면 배열에 NSNull 객체를 할당하고 NSNull이 nil이 아니고 NSNull이 count에 응답하지 않으므로 if (array && [배열 개수]> 0) 조건을 사용할 수 없습니다. 내 코드 전체에 걸쳐 이들 각각에 대한 매크로 작성을 마쳤습니다. – applefreak