2017-01-23 18 views
1

林喜新iOS開發,目前有一個問題,當我開發一個調度事件如何把JSON中的NSMutableArray

請讓我知道如何添加,而不是硬編碼的array.I JSON數據需要更換隻有CUSTOMER_NAME,從JSON CUSTOMER_ID這個硬編碼的數據

這是我的日程安排按鈕單擊事件:

- (IBAction)schedule:(id)sender { 

    FFCalendarViewController *rootController = [FFCalendarViewController new]; 
    [rootController setArrayWithEvents:[self arrayWithEvents]]; 


     [self.navigationController pushViewController:rootController animated:YES]; 


} 

這是我硬編碼數組:

- (NSMutableArray *)arrayWithEvents { 

    FFEvent *event1 = [FFEvent new]; 
    [event1 setStringCustomerName: @"Customer A"]; 
    [event1 setNumCustomerID:@1]; 
    [event1 setDateDay:[NSDate dateWithYear:[NSDate componentsOfCurrentDate].year month:[NSDate componentsOfCurrentDate].month day:[NSDate componentsOfCurrentDate].day]]; 
    [event1 setDateTimeBegin:[NSDate dateWithHour:10 min:00]]; 
    [event1 setDateTimeEnd:[NSDate dateWithHour:15 min:13]]; 


    FFEvent *event2 = [FFEvent new]; 
    [event2 setStringCustomerName: @"Customer B"]; 
    [event2 setNumCustomerID:@2]; 
    [event2 setDateDay:[NSDate dateWithYear:[NSDate componentsOfCurrentDate].year month:[NSDate componentsOfCurrentDate].month day:[NSDate componentsOfCurrentDate].day]]; 
    [event2 setDateTimeBegin:[NSDate dateWithHour:9 min:15]]; 
    [event2 setDateTimeEnd:[NSDate dateWithHour:12 min:138]]; 

    return [NSMutableArray arrayWithArray:@[event1, event2]]; 

} 

這是我的JSON輸出,我想,以取代以硬編碼的數組:

[ 
    { 
     "customer_id":"802", 
     "customer_name":"Tela" 

    }, 
    { 
     "customer_id":"803", 
     "customer_name":"Bena" 
    } 
] 

這是我的序列化JSON代碼:

NSData *myData = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 

NSMutableArray *testFeeds = [NSJSONSerialization JSONObjectWithData: myData options:NSJSONReadingMutableContainers error:nil]; 

    NSMutableArray *rec = [[NSMutableArray alloc] init]; 

     [rec addObjectsFromArray:testFeeds]; 

請幫我理清這個問題。

+0

不要ü想從JSON獲取值,然後在烏爾硬編碼的數組內容替換? m無法理解 – Swati

+0

是的,我已經提取了值,這是我發佈的輸出,你是對的,需要替換我的硬編碼數組內容 – Tela

回答

2

連載你json與下面的代碼

NSMutableArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e]; 

現在jsonArray包含您json文件的可變數據。因此,您可以直接在此數組中更改或更新這些值。

編輯

NSMutableArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e]; 

NSMutableArray *rec = [[NSMutableArray alloc] init]; 

for (int i = 0; i< jsonArray.count; i++) { 
    FFEvent *event1 = [FFEvent new]; 
    [event1 setStringCustomerName:jsonArray[i][@"customer_name"]]; 
    [event1 setNumCustomerID:[jsonArray[i][@"customer_id"] integerValue]]; 
    [event1 setDateDay:[NSDate dateWithYear:[NSDate componentsOfCurrentDate].year month:[NSDate componentsOfCurrentDate].month day:[NSDate componentsOfCurrentDate].day]]; 
    [event1 setDateTimeBegin:[NSDate dateWithHour:10 min:00]]; 
    [event1 setDateTimeEnd:[NSDate dateWithHour:15 min:13]]; 

    [rec addObject:event1]; 
} 
+0

我也序列化了,我需要知道如何應用它? – Tela

+0

@Tela讓我看看你的代碼爲序列化工作。 –

+0

感謝您的回覆,我編輯了問題並插入了序列化代碼,請看看 – Tela