Отказ от ответственности: я новичок в JSON.

У меня есть веб-сайт, который предлагает свои данные в формате JSON, и я нахожусь в процессе создания приложения для iPhone для доступа к этим данным. У меня проблема не в самом приложении, а в синтаксисе для доступа к некоторым данным JSON.

У меня нет проблем с доступом к данным в разделе Post [ ], однако я хочу получить доступ к Attachments > Images > wptouch-new-thumbnail > url.

Я знаю, что вы обычно получаете доступ к данным с точечным синтаксисом, но со всем, что я пробовал, я не смог выбрать что-либо за пределами раздела Post[].

Это довольно просто: я беру то, что получаю с сервера через сообщения, и добавляю их в NSStrings или UIImage в случае изображений для использования в UITableView.

У меня все это работает, но я не могу получить доступ к чему-либо под вложениями. Я пытался сделать другой NSDictionary для вложений, но это не сработало.

Опять же, помните, что я очень новичок в JSON/доступе к данным внутри него.

Любая помощь была бы признательна!

0
KDM 27 Дек 2011 в 20:28

1 ответ

Сделайте NSMutableData как jsonMutableData вместо NSMutableString. в соединении dedreceiveresponse инициализируйте jsonMutableData затем,

 //Json Connection

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [jsonMutableData appendData:partialData];   
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{

    NSString *jsonData = [[NSString alloc] initWithData:jsonMutableData encoding:NSUTF8StringEncoding];   

    NSDictionary *filesJSON = [jsonData JSONValue];


    NSArray *files = [filesJSON objectForKey:@"posts"];
//further code
0
Saurabh Passolia 27 Дек 2011 в 20:37
Извините, если это глупый вопрос, но как изменение его на NSMutableData вместо NSMutableString поможет мне получить информацию во «вложениях»? если я его изменю, я просто ** NSString *wpimage = [file objectForKey:@"wptouch-new-thumbnail"]; [wptouch addObject: wpiimage]; ** и это будет работать?
 – 
KDM
27 Дек 2011 в 22:17
Речь идет не об изменении NSMutableString на NSMutableData. см. «ключ», вам нужно дождаться полного получения всех данных, прежде чем пытаться преобразовать их в NSString, поскольку может быть случай, когда ваши данные не полностью получены в первом фрагменте. это то, что было показано в коде, который я разместил.
 – 
Saurabh Passolia
28 Дек 2011 в 09:32