Невозможно извлечь данные из NSDictionary, заполненного данными JSON - PullRequest
0 голосов
/ 16 марта 2012

Я только начал писать приложения для IOS5. В настоящее время у меня есть веб-сервис PHP, который приложение вызывает для извлечения данных из базы данных. В базе данных у меня есть 3 строки на данный момент, и когда я вхожу в отладчик, словарь имеет 3 пары ключ / значение. Я не могу получить ни одно из значений, хотя. Мой код ниже:

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;
    }
)

Я надеюсь, что кто-то может помочь - я уверен, что проблема должна быть чем-то базовым.

Заранее большое спасибо,

Стивен

1 Ответ

1 голос
/ 16 марта 2012

Хорошо, здесь у вас есть массив словарей, а не сам словарь.Попробуйте это:

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

Конечно, это даст вам только первый объект, но вы получите идею ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...