2012-09-26 79 views
0
{ 
"id"=12 
"genres_en" = "thriller,movies,action"; 
} 
{ 
"id"=13 
"genres_en" = "thriller,horror"; 
} 

大家好, 中的一个值我有一个JSON像this..I意味着我有一个内容和所有的电影都有自己的风格..和我需要做一个分类..例如,我需要检查哪种类型的电影是恐怖..或者哪一个是惊悚片..我得到所有这样的价值:如何访问某些值

- >“恐怖,电影” 但我怎么能控制到检查这部电影的风格是否包含恐怖或不是。?你的建议是什么?

谢谢

回答

0
for(int j=0;j< GenresArray.count; j++) 
       { 
        NSString *value=[[genre componentsSeparatedByString: @","]objectAtIndex:j]; 

        if([value isEqualToString:@"movies"]) 
        { 
         [genreMovies addObject:value]; 
        } 
       } 

感谢您的帮助球员..Now我使用此解决方案将需要运行一个'换loop`找到有我的结果:)

+0

请注意,这一行'[genre componentsSeparatedByString:@“,”] ''会每次给你相同的结果,但是你执行'GenresArray.count'次,如果字符串很小,这不是一个问题,但是如果字符串变得很长,它可能会遇到性能问题。最好只在for循环之前得到这个数组。 – George

0

你可以使用componentsSeparatedByString

NSDictionary *dic = PARSE The JSON; 

NSString *values = [dic objectForKey:"genres_en"]; 
NSString *firstValue = [[values componentsSeparatedByString:","] objectAtIndex:0]; 
+0

@“恐怖”(或其他任何类型)有 – Novarg

+0

是的我之前喜欢: NSDictionary * dic = PARSE JSON; NSString * values = [dic objectForKey:“genres_en”]; NSString * firstValue = [[values componentsSeparatedByString:“,”] objectAtIndex:0]; 但是一些数组有2个值的问题其中有些有3个,其中一些有1个值,会给出错误?我不能访问所有类型的恐怖,并做这种分类? – santa

0

我没有附近的Xcode,所以下面的代码可能有错误(或两个:))。

试试看这样的:

NSDictionary *yourDict = //your parsed json 
NSString *genres = [yourDict objectForKey:@"genres_en"]; 
if ([genres rangeOfString:@"horror"].location != NSNotFound) { 
    return YES; 
} else { 
    return NO; 
} 

希望它可以帮助

+0

这个解决方案并没有在我的问题中工作.. :( – santa

+0

@santa你究竟想要什么?你得到了什么?你的json是如何解析的? – Novarg

-1

你可以尝试检查如果字符串包含你想要的字符串。像这样:

NSString *typesString = [dic objectForKey:"genres_en"]; 
NSRange range = [typesString rangeOfString:@"horror"]; 
if(range.location != NSNotFound) 
{ 
    //it contains the substring "horror" 
} 

或者,更好的方法是获取类型数组。

NSArray *types = [[typesString componentsSeparatedByString:","]; 

现在你可以存储在此阵列的每个条目,只要你想,以检查它是否属于某个性别,只通过类型数组(每个条目的)循环和比较字符串。

希望这会有所帮助。

干杯!