2012-05-25 3 views
1

내 응용 프로그램에서 핵심 데이터를 쿼리해야합니다, json 문자열을 저장하는 필드가있는 테이블이 있습니다. 이제이 테이블에 특정 키 - 값 쌍이있는 항목에 대해이 테이블을 쿼리해야합니다. 나는 이미 LIKE 표현으로 이것을 풀려고했지만 WILDCARDS가 NEWLINE과 일치하기 때문에 이것은 잘 진행되지 못했습니다. 이제는 정규식을 MATCHES 연산과 함께 사용해야한다는 것을 알기 위해 붙어 있습니다.json 필드의 키 - 값 핵심 데이터

키와 값의 문자열이 알려져 있고, 난 그냥 당신은 단지 정상을 반환하는 개체에 대한 게터 속성을 쓸 수를 포함하는 항목을 찾기 위해 다른 :

답변

1

에 LIKE 식으로 쿼리를 사용할 수있는 그런

- (NSString *)stringRepresentation 
{ 
    NSError *error = nil; 
    NSData* data=[self.jsonStringProperty dataUsingEncoding:NSUTF8StringEncoding]; 
    NSString *string = [JSONObjectWithData:data options:0 error:&error]; 
    if (error) { 
    ... // error handling 
    } 
    return string; 
} 

정규식으로 그것을 해결 :

for(NSString* value in values) 
{ 
    if(value.length > 0) 
    { 
     if(i > 0) 
     { 
      [query appendString:@" OR "]; 

     } 
     [query appendFormat:@" (json_data MATCHES[c] '.*?\"%@\\\":\\\"([^\"]*)%@([^\"]*)\".*?')",key,value]; 
     i++; 
    } 

} 
1

아무것도 필요하지 않습니다 같은 문자열이 아니라 JSON 문자열 : 당신이 그 재산