key values from an NSDictionary formatting with "()"
I'm trying to pull two values from this Dictionary, But the values I'm getting have "()" around them. Any Ideas what is causing this?
Here is the ServerOutput:
{"Rows":[{"userid":"1","location":"beach"}]}
Dictionary after JSON:
{
Rows = (
{
location = beach;
userid = 1;
}
);
}
This is what I'm getting:
location : (
beach
)
user Id : (
1
)
Both the userid and the location key values have the "()". Here is the code. Thanks a lot.
NSString *serverOutput= [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
if(serverOutput > 1){
SBJSON *jsonFF = [[SBJSON new] autorelease];
NSError *erro开发者_JS百科r3 = 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);
Just to clarify what is going on. When parsing JSON {} gets returned as a dictionary and [] gets retured as an array. So we have useridDict
an NSDictionary
containing the parsed data.
'useridDict' has one key Rows
which returns an NSArray
.
NSArray *useridArray = [useridDict objectForKey:@"Rows"];
Our useridArray
has one element, an NSDictionary
NSDictionary *dict = [useridArray objectAtIndex:0];
This dict
contains the two keys: location
and userid
NSString *location = [dict objectForKey:@"location"];
NSInteger userid = [[dict objectForKey:@"userid"] intValue];
You can use like this.
idreturn = [[[useridDict valueForKey:@"Rows"] objectAtIndex:0]valueForKey:@"userid"];
locationreturn = [[[useridDict valueForKey:@"Rows"] objectAtIndex:0] valueForKey:@"location"];
精彩评论