2017-01-23 20 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