{
"bidstatus":[
{"bidstatusid":"1","bidstatus":"Quoted"},
{"bidstatusid":"2","bidstatus":"Closed"},
{"bidstatusid":"3","bidstatus":"Awarded"}
],
"config":{
"adminfee":"100",
"percentcommission":"10",
"premiumfee":"0"
},
"lvlsubj":{
"Primary 1":["English","Geography","Maths","Science"],
"Primary 2":["English","Geography","History"],
"Primary 3":["Maths","Science"]
}
}
У меня есть входящий ответ JSON от API, который возвращает выше. Существующий код iOS использует AFNetworking для анализа JSON. Я могу хранить bidstatus как NSArray и config как NSDictionary. Тем не менее, я не могу заставить lvlsubj правильно храниться. Этот объект выглядит как 2D-массив с массивом второго уровня переменного размера.Хранение массива JSON с переменным размером в элементе iOS
Как это сделать?
Существующий код довольно прост.
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSString* strRequestLink = [NSString stringWithFormat:@"%@%@", SERVICEPATH, @"get_var.php"];
[manager GET: strRequestLink
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
[GlobalPool sharedObject].m_dictPaymentConfig = [[responseObject valueForKey:@"config"] mutableCopy];
[GlobalPool sharedObject].m_arrayBidStatus = [[responseObject valueForKey:@"bidstatus"] mutableCopy];
//[GlobalPool sharedObject].m_arrayLevelSubject = [[responseObject valueForKey:@"lvlsubj"] mutableCopy];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
[self showServerConnectionError];
}];
lvlsubj - словарь с первичным 1 в качестве первого ключа, который представляет собой массив. то же, что и вы, с состоянием ставки, сделать это с первичным 1 и так далее, после извлечения из lvlsubj. –
Похож, что 'lvlsubj' является' NSDictionary' 'NSArrays'. Поэтому вызов '[lvlsubj objectForKey" "]' будет возвращать массив. Извините, на моем телефоне или прокомментирую как ответ, но не смог правильно протестировать. – random
Спасибо обе, попробуем. – Terence