2016-07-04 5 views
0

Я пытаюсь получить элементы, извлеченные из словаря, и преобразовать их в двойные. Данные извлекаются из JSON и, кажется, извлекаются в тип массива (не уверен, какой тип). Есть ли способ получить номера, перечисленные ниже, отдельно от массива? Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.Объектив C Доступ к элементам

NSDictionary *parameters = @{@"username":savedUser,@"password":savedPass}; 

     NSURL *URL = [NSURL URLWithString:@"testwebsite"]; 
     AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
     manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
     [manager GET:URL.absoluteString parameters:parameters progress:nil success:^(NSURLSessionTask *task, id responseObject) 
     { 

      NSError *error = nil; 
      JSON = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error]; 
      if (error) { 
       NSLog(@"Error serializing %@", error); 
      } 
      NSLog(@"%@",JSON); 
      NSString *price = [NSString stringWithFormat:@"%@",[JSON valueForKey:@"UnitPrice"]]; 
      price= [price stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 

      NSLog(@"Price: %@",price); 

      [transactionTotals addObject:price]; 

      [self createGraph:100]; 

     } 
      failure:^(NSURLSessionTask *operation, NSError *error) 
     { 

      NSLog(@"Error1: %@", [error debugDescription]); 
      NSLog(@"Error2: %@", [error localizedDescription]); 

     }]; 
    } 
    @catch (NSException *exception) 
    { 
     NSLog(@"%@",exception); 
    } 

Log (значения UNITPRICE мне нужно индивидуально извлекаемые):

словарь выход:

2016-07-03 22:52:21.330 T2PApp[2272:658440] (
     { 
     OrderDetailID = 3; 
     ProductName = Oranges; 
     UnitPrice = "399.99"; 
     date = "2016-06-09T21:45:06"; 
    }, 
     { 
     OrderDetailID = 7; 
     ProductName = Oranges; 
     UnitPrice = 1000; 
     date = "2016-06-13T22:15:47.107"; 
    } 
) 

Извлеченные UnitPrice выход (до сих пор не полностью извлечены):

2016-07-03 22:52:21.330 T2PApp[2272:658440] Price: (
    399.99, 
    1000 
) 

ответ

0

Я думаю, вам нужно выкопать данные из объектов в массиве. Это не о JSON.
Существует много способов сделать это, но не один простой способ выкопать его.
Например, создайте новый массив и перейдите к целевому массиву, поместите требуемое свойство в новый массив.
В основном это так.
В вашем коде может быть код, указанный ниже.

NSLog(@"%@",JSON); 
NSMutableArray *priceArr = [NSMutableArray array]; 
NSArray *arr = nil; 
if ([JSON isKindOfClass:[NSArray class]]) { 
    arr = (NSArray *)JSON; 
    for (NSDictionary *dic in arr) { 
     NSString *price = [NSString stringWithFormat:@"%@",[dic valueForKey:@"UnitPrice"]]; 
     price= [price stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 
     [priceArr addObject:price]; 
    } 
} 

priceArr - это то, что вам нужно.

+0

Как я буду перебирать массив цен? ObjectAtIndex, похоже, не работает. – user5792975

+0

forin может это сделать – childrenOurFuture

Смежные вопросы