2016-06-22 1 views
0

다음 json 배열이 있습니다. 법정 달 (단어의 관점에서)을 연결하여 데이터베이스에 추가하려고합니다. 때때로 달과 날짜가 없을 수도 있습니다. 때로는 날짜가 표시되고 달은 나타나지 않을 수도 있고 그 반대 일 수도 있습니다. 이 조건을 처리하고 1 월 31 일, 30 일 등의 날짜와 월을 db로 저장해야합니다.선택적 값인 월 및 일을 포함하는 jsonarray를 효율적으로 루핑

[ 
    { 
    "statutory_month": 1, 
    "statutory_date": 31 
    }, 
    { 
    "statutory_month": 4, 
    "statutory_date": 30 
    }, 
    { 
    "statutory_month": 7, 
    "statutory_date": 31 
    }, 
    { 
    "statutory_month": 10, 
    "statutory_date": 31 
    } 
] 

루프를 많이하지 않아도 이러한 상황을 효과적으로 처리 할 수 ​​있습니까?

+0

당신이 무엇을 요구하고 있는지 명확하지 않습니다. 배열을 여러 번 반복해야하는 이유는 무엇입니까? 가능한 입력과 필요한 출력에 대해 자세히 설명해 주시겠습니까? 솔루션을 시도한 코드를 보여줄 수 있습니까? – Paulw11

답변

1

먼저 시도해 보셨습니까? 1 개월 배열을 만드시겠습니까? 그 후 사전 같은 데이터를 추출하십시오

NSArray *months = [[NSArray alloc] initWithObjects:@"Jan", @"Feb", @"Mar", @"Apr", @"May", @"Jun", @"July", @"Aug", @"Sept", @"Oct", @"Nov", @"Dec", nil]; 
NSArray *resultDate = [[NSArray alloc] init]; 
for (NSDictionary *dic in jsonArr) //jsonArr is your response arr 
{ 
    if([dic objectForKey:"statutory_month"] && [dic objectForKey:"statutory_date"]) { 
     NSString *dateObj = [NSString stringWithFormat:@"%d %@",[dic objectForKey:@"statutory_date"], [months objectAtIndex:[dic objectForKey:"statutory_month"]]]; 
    } 
    else if([dic objectForKey:"statutory_date"]) { 
     NSString *dateObj = [NSString stringWithFormat:@"%d",[dic objectForKey:@"statutory_date"]]; 
    } 
    else if([dic objectForKey:"statutory_month"]) { 
     NSString *dateObj = [NSString stringWithFormat:@"%@",[months objectAtIndex:[dic objectForKey:"statutory_month"]]]; 
    } 
    else { 
     NSString *dateObj = @"No date"; 
    } 
    [resultDate addObject:dateObj]; 
} 

희망이 도움이 될 것입니다.

0

당신은 응답의 하나 개의 배열을 수행 할 수 있습니다

NSArray *arr = //response; 

for (NSDictionary *dic in arr) 
{ 
    if([dic objectForKey:"statutory_month"]) 
      //add 
    if([dic objectForKey:"statutory_date"]) 
      //add 
} 

P.S은 내가 내 자신을 시도하지 않았다. 그러나 그것이 당신을 도울 것입니다.

관련 문제