NSDictionary无法在webservice中读取数组

时间:2014-08-12 10:31:21

标签: ios json xcode web-services nsdictionary

我是开发Xcode 5并且无法通过php连接到SQLServer的新手。 php结果如下:

{"user":[{"user_id":"2393", "id":"740049"}], "succeed":1}

这个网络服务不是由我而是由我的团队创建的。我试图通过NSLog跟踪进程,发现问题是我创建的NSDictionary无法读取这种格式。

这是我的NSDictionary

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:urlData option:NSJONReadingMutableContainers error:&error];
success=[json[@"success"] integerValue];
NSLog(@"Success:%ld", (long)success);

如果我的NSDictionary能够读取数据,那么成功应该是1,但它一直显示0.我发现问题是我无法在字典中解析该数组。任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

错字:

success=[json[@"succeed"] integerValue];
//              ^^^^^^^

答案 1 :(得分:0)

您错误输入了键值。它将是@“成功”。但是你键入@“success”

NSJSONSerialization *jsonData = [NSJSONSerialization JSONObjectWithData: urlData options:NSJSONReadingMutableContainers error:&error];
int success=[[(NSDictionary *)jsonData valueForKey:@"succeed"]integerValue];
NSLog(@"Success:%ld", (long)success);

答案 2 :(得分:0)

//returnString is {"user":[{"user_id":"2393", "id":"740049"}], "succeed":1};

NSDictionary *response = [returnString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *users =[NSArray alloc]init];
if([[response valueForKey:@"succeed"] integerValue] == 1)
    users = [response valueForKey:@"user"];
for(NSDictionary *user in users)
    NSLog(@"User : %@", user);

示例输出

User: [{user_id:2393,id:740049},{user_id:2394,id:740050}...,{user_id:2395,id:740051}];