2016-07-15 3 views
0

が含まれている場合、私は、データが配列であるJSON辞書を読んだ後objectForKeyは、それが単一の値

{ 
    county = "XXXXX"; 
    states =    (
     "YYYYY", 
     "ZZZZZ" 
); 
} 

のような辞書JSON辞書を持っている数の例外がスローされます。私はその後、キーが「状態」である場合には、それが正常に動作します

for (NSString *key in array) { 
     NSMutableArray *myData =[[NSMutableArray aalloc] init]; 
     myData = [array objectForKey:key]; 
     int count = [myData count]; 
} 

データと異なる配列を作成したいと、私は次のコードを使用してい

。 keyが 'country'の場合、objectForKeyはNSStringを返すため、countに例外がスローされます。これを解決するには? objectForKeyが返すオブジェクトの数を調べる方法は?

答えて

2

Check out this answer from @HDdeveloper:

if([object isKindOfClass:[NSString class]] == YES) 
{ 
    NSLog(@"String rx from server"); 
} 
else if ([object isKindOfClass:[NSDictionary class]] == YES) 
{ 
    NSLog(@"Dictionary rx from server"); 
} 
else if ([object isKindOfClass:[NSArray class]] == YES) 
{ 
    NSLog(@"Array rx from server"); 
} 

あなたがobjectForKeyを取得した後、基本的に、あなたは、そのオブジェクトの種類を確認し、それに応じて使用する必要があります。

0

JSONには辞書が含まれています。

そのdictのキー "states"には配列が含まれ、もう一方のキーには文字列が含まれています。どちらのキーもNSDataオブジェクトを含んでいません。

配列にはcountメソッドがありますが、文字列にはカウントされません。だから、あなたが墜落しているのです。

関連する問題