Очень простой JSON для tableView (iOS)
Ну, я решил, что пришло время выучить новый навык, цель программирования - c. Мои знания по программированию очень минимальны, он состоит из PHP, немного HTML и немного MySQL. Я хочу взять JSON, созданный с помощью php, и заполнить представление таблицы iOS.
вот мой json.php:
<?php
$array = array(1,2,3,4,5,6,7,8,9,10);
$json = json_encode($array);
echo $json;
?>
Моя единственная проблема в том, что я понятия не имею, с чего начать, как использовать фреймворк JSONKit. https://github.com/johnezang/JSONKit/ Я бы предпочел использовать JSONKit по сравнению с другими альтернативами только потому, что кажется, что он имеет больше поддержки.
NSString *strURL = [NSString stringWithFormat:@"http://api.tekop.net/json.php"];
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
NSLog(@"%@", strResult);
Мне удалось распечатать результаты страницы JSON в консоли отладки. Теперь мой единственный вопрос: что дальше? Я пытался найти некоторые учебники в Интернете, но все, что я мог найти, было что-то более продвинутый Джейсон Фразер. Для продвинутых для моих основных потребностей. Я знаю, что мои вопросы очень расплывчаты и открыты для множества разных ответов, но я решил, что это именно то место, где можно задавать подобные вопросы.
2 ответа
У iOS есть собственный анализ JSON, который теперь называется NSJSONSerialization.
Вы можете посмотреть. Я всегда использую это так
[NSJSONSerialization JSONObjectWithData:tmpData
options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments
error:nil]
пример, изменив свой код:
NSString *strURL = [NSString stringWithFormat:@"http://api.tekop.net/json.php"];
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
NSArray *arrayResult = [NSJSONSerialization JSONObjectWithData:dataURL
options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments
error:nil];
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
Следует отметить, что, если ваш json основан на массивах, используйте NSArray для сохранения результата. Если ваш json основан на хэше, используйте NSDictionary. (Надеюсь, я скажу это ясно, я не знаю связанных терминов, чтобы описать)
Что вы пробовали?
NSArray *array = [dataURL objectFromJSONData];
NSAssert([array isKindOfClass:[NSArray class]], @"This should be an array.");
for (NSNumber *value in array) {
NSAssert([value isKindOfClass:[NSNumber class]], @"This should be a number.");
NSLog(@"%@", value);
}