2012-03-16 91 views
0

我刚开始为IOS5编写应用程序。我目前有一个PHP webservice,应用程序调用来从数据库中检索数据。在数据库中我有3行,当我进入调试器时,字典有3个键/值对。我无法检索任何值。我下面的代码:无法从填充了JSON数据的NSDictionary中提取数据

NSURL *myUrl = [[NSURL alloc]initWithString:@"http://localhost/~stephen-hill9/index.php"]; 
NSData *data = [[NSData alloc] initWithContentsOfURL:myUrl]; 
NSError *error; 
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
NSLog(@"Parsed Data: %@", json); 
NSDictionary *bodyDictionary = [json objectForKey:@"Product_Desc"]; <-APP CRASHES HERE - INVALID KEY 
NSLog(@"Parsed Data: %@", bodyDictionary); 

而且,这里的数据字典中包含这是我从调试了:

Parsed Data: (
     { 
     0 = 1; 
     1 = "Caromax 20HN B/F"; 
     2 = 51533; 
     3 = 6650; 
     4 = 1117760; 
     5 = 1067224; 
     6 = 1759741; 
     7 = 1; 
     8 = "0000-00-00 00:00:00"; 
     ID = 1; 
     "Max_Volume" = 1759741; 
     "Product_Code" = 51533; 
     "Product_Desc" = "Caromax 20HN B/F"; 
     Pumpable = 1067224; 
     Status = 1; 
     "Tank_Level" = 6650; 
     Updated = "0000-00-00 00:00:00"; 
     Volume = 1117760; 
    }, 
     { 
     0 = 2; 
     1 = "C1 Kerosine"; 
     2 = 25101; 
     3 = 1258; 
     4 = 146871; 
     5 = 111776; 
     6 = 1018590; 
     7 = 2; 
     8 = "2023-02-12 20:00:00"; 
     ID = 2; 
     "Max_Volume" = 1018590; 
     "Product_Code" = 25101; 
     "Product_Desc" = "C1 Kerosine"; 
     Pumpable = 111776; 
     Status = 2; 
     "Tank_Level" = 1258; 
     Updated = "2023-02-12 20:00:00"; 
     Volume = 146871; 
    }, 
     { 
     0 = 3; 
     1 = "Recovered Spirit"; 
     2 = 87902; 
     3 = 6069; 
     4 = 710172; 
     5 = 675078; 
     6 = 1018200; 
     7 = 1; 
     8 = "2012-03-16 00:00:00"; 
     ID = 3; 
     "Max_Volume" = 1018200; 
     "Product_Code" = 87902; 
     "Product_Desc" = "Recovered Spirit"; 
     Pumpable = 675078; 
     Status = 1; 
     "Tank_Level" = 6069; 
     Updated = "2012-03-16 00:00:00"; 
     Volume = 710172; 
    } 
) 

我希望有人能够帮助 - 我相信这个问题一定要基本的东西。

提前许多感谢,

斯蒂芬

+0

你怎么从你的词典中提取数据? – giorashc 2012-03-16 10:59:14

回答

1

好吧,你有什么已经在这里得到的是字典的数组,而不是一个字典本身。 试试这个:

NSArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
NSDictionary *bodyDictionary = [json objectAtIndex:0]; 

当然,这样只会让你的第一个对象,但你的想法...

+0

谢谢你的回答 - 我无法找到NSDictionary的“objectAtIndex”方法,虽然:-S – HillInHarwich 2012-03-16 11:12:31

+0

糟糕...道歉 - 我只是将第一个字典--JSON更改为一个数组,并将objectAtIndex提取到第二个字典,它已经工作。非常感谢您的帮助! – HillInHarwich 2012-03-16 11:17:55

+0

很高兴帮助你:)考虑设置答案为正确的,如果这是你在找什么。 – Alladinian 2012-03-16 11:27:58