2016-07-04 2 views
0

사전에서 추출한 요소를 얻고이를 double로 변환하려고합니다. 데이터가 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); 
    } 

로그 (단가 값 I 개별적으로 추출 필요) :

사전 출력 :

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

추출 단가 출력 (아직 완전히 추출되지 않음) : 내가 생각

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