无法从填充了JSON数据的NSDictionary中提取数据 [英] Cannot extract data from NSDictionary filled with JSON Data
问题描述
我刚刚开始为IOS5编写应用程序。我目前有一个PHP Web服务,应用程序调用该服务从数据库中检索数据。在数据库中,我目前有3行,当我进入调试器时,字典有3个键/值对。我无法检索任何值。我的代码如下:
I have just started writing apps for IOS5. I currently have a PHP webservice that the app calls to retrieve data from database. In the database I have 3 rows at the moment, and when I go into the debugger the dictionary has 3 key/value pairs. I cannot retrieve any of the values though. My Code below:
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);
此外,这是我从调试器获得的字典所包含的数据:
Also, here is the data that the dictionary contains which I got from the debugger:
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;
}
)
我希望有人能够提供帮助 - 我肯定问题必须是基本的。
I hope someone is able to help - I am sure the problem must be something basic.
非常感谢提前,
Stephen
推荐答案
好的,你在这里得到的是一个字典数组,而不是字典本身。
试试这个:
Ok, what you 've got here is an Array of Dictionaries, not a Dictionary itself. Try this:
NSArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSDictionary *bodyDictionary = [json objectAtIndex:0];
当然这只会让你成为第一个对象,但你明白了......
Of course this will get you the first object only, but you get the idea...
这篇关于无法从填充了JSON数据的NSDictionary中提取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!