将Json转换为Ios格式

时间:2014-06-04 18:04:07

标签: ios json parsing jsonp

我试图在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);
 }

1 个答案:

答案 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"]);