我正试图从这个字典中提取两个值,但是我得到的值在它们周围有“()”。是什么原因引起了这个?
这是ServerOutput:
{"Rows":[{"userid":"1","location":"beach"}]}
JSON之后的字典:
{
Rows = (
{
location = beach;
userid = 1;
}
);
}
这就是我得到的:
location : (
beach
)
user Id : (
1
)
userid和location键值都有“()”。这是代码。非常感谢。
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 :(得分:0)
只是为了澄清发生了什么。当解析JSON {}作为字典返回时,[]作为数组返回。因此,我们useridDict
NSDictionary
包含已解析的数据。
'useridDict'有一个键Rows
,返回NSArray
。
NSArray *useridArray = [useridDict objectForKey:@"Rows"];
我们的useridArray
有一个元素NSDictionary
NSDictionary *dict = [useridArray objectAtIndex:0];
此dict
包含两个键:location
和userid
NSString *location = [dict objectForKey:@"location"];
NSInteger userid = [[dict objectForKey:@"userid"] intValue];
答案 1 :(得分:0)
你可以这样使用。
idreturn = [[[useridDict valueForKey:@"Rows"] objectAtIndex:0]valueForKey:@"userid"];
locationreturn = [[[useridDict valueForKey:@"Rows"] objectAtIndex:0] valueForKey:@"location"];