2010-12-01 10 views
0

私はこのディクショナリから2つの値を取得しようとしていますが、値は "(")になります。どのようなアイデアがこれを引き起こしていますか?ここで"()"のNSDictionaryフォーマットのキー値

はSERVEROUTPUTです:JSON後

{"Rows":[{"userid":"1","location":"beach"}]} 

辞書:

location : (
    beach 
) 
user Id : (
    1 
) 

をユーザーIDと場所のキー値の両方:

{ 
    Rows =  (
      { 
     location = beach; 
     userid = 1; 
    } 
); 
} 

これは私が得ているものです"()"がある。ここにコードがあります。どうもありがとう。

NSString *serverOutput= [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]; 


if(serverOutput > 1){ 

     SBJSON *jsonFF = [[SBJSON new] autorelease]; 
     NSError *error3 = nil; 
     NSDictionary *useridDict= [jsonFF objectWithString:serverOutput error:&error3]; 

     NSLog(@"useridDict: %@",useridDict); 

    idreturn = [[useridDict valueForKey:@"Rows"] valueForKey:@"userid"]; 

    locationreturn = [[useridDict valueForKey:@"Rows"] valueForKey:@"location"]; 

    NSLog(@" user Id : %@", idreturn); 
    NSLog(@" location : %@", locationreturn); 
+0

locationreturnはどのように宣言されていますか? NSArrayですか? – Anna

+0

idreturnとlocationreturnsはNSStringsです。ありがとう –

+0

配列としての値を決定しているようですが、理由はわかりません。 – Wevah

答えて

0

何が起こっているかを明確にする。 JSON {}を解析すると辞書として返され、[]は配列として保持されます。したがって、我々はuseridDictと、解析されたデータを含むNSDictionaryを持っています。

'useridDict'にはという1つのキーがあり、NSArrayを返します。私たちのuseridArray

NSArray *useridArray = [useridDict objectForKey:@"Rows"]; 

NSDictionary

NSDictionary *dict = [useridArray objectAtIndex:0]; 

このdictは、2つのキーを含んで、一つの要素を持っていますlocationuserid

NSString *location = [dict objectForKey:@"location"]; 
NSInteger userid = [[dict objectForKey:@"userid"] intValue]; 
0

あなたはこのように使用できます。

idreturn = [[[useridDict valueForKey:@"Rows"] objectAtIndex:0]valueForKey:@"userid"]; 

locationreturn = [[[useridDict valueForKey:@"Rows"] objectAtIndex:0] valueForKey:@"location"]; 
関連する問題