如何将 JSON 放入 NSMutableArray

How to put JSON in to NSMutableArray

嗨,我是 iOS 开发的新手,目前在开发调度事件时遇到问题

请告诉我如何添加 JSON 数据而不是硬编码 array.I 只需要将 customer_name、customer_id 从 json 替换为这个硬编码数据

这是我的日程按钮点击事件:

- (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];

请帮我解决这个问题。

使用以下代码序列化您的 json

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

现在 jsonArray 包含 json 文件的可变数据。因此您可以直接更改或更新此数组中的值。

edit

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];
}