我试图在iOS中解析json但是却出错了。 这是我从api获得的json
data = (
{
LogIn = {
Emails = "abc@xyz`.com";
Latitude = "37.33233141";
Longitude = "-122.03121860";
Password = 123456;
};
Status = Success;
}
);
我想要所有详细信息,如电子邮件,谷歌纵横,经度和密码以及状态。我正在尝试以下代码为json
loginurl= [NSURL URLWithString:string1];
NSLog(@"url is %@",string1);
dispatch_async(kBgQueue, ^{
NSData *data = [NSData dataWithContentsOfURL:loginurl];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
这是我的获取数据方法 -
-(void)fetchedData:(NSData *)responseData
{
NSError * error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSLog(@"JSON: %@", json);
NSDictionary *data = [json objectForKey:@"data"];
NSArray *currentConditions = [data objectForKey:@"LogIn"];
NSDictionary *conditions = [currentConditions objectAtIndex:0];
NSLog(@"%@",conditions);
}
答案 0 :(得分:0)
首先,您的JSON格式无效。它应该是这样的:
{
"data": {
"LogIn": {
"Emails": "abc@xyz`.com",
"Latitude": "37.33233141",
"Longitude": "-122.03121860",
"Password": 123456
},
"Status": "Success"
}
}
您可以使用http://jsonlint.com/来验证您的JSON数据。
其次,
[data objectForKey:@"LogIn"];
是字典,而不是数组。
尝试:
NSDictionary *currentConditions = [data objectForKey:@"LogIn"];
NSLog(@"Longitude: %@", [currentConditions objectForKey@"Longitude"]);