Конвертировать NSData в JSON - PullRequest
       3

Конвертировать NSData в JSON

6 голосов
/ 23 января 2012

У меня есть NSData объект, мне нужно преобразовать его в NSDictionary объект.

NSData *data = ....;

Теперь мне нужно преобразовать это в NSDictionary. Как я могу сделать это программно?

примечание: после сохранения NSData в NSDictionary я смогу получить доступ к key value парам NSDictionary.

У меня нет кода дляПродемонстрируйте свою работу до сих пор, я только создал объект NSData, и не имею понятия продолжать:)

Ответы [ 3 ]

3 голосов
/ 09 апреля 2012

Вы можете создать подкласс MKNetworkOperation и переопределить метод responseJSON следующим образом:

-(id) responseJSON
{
    NSString *rawJSON;
    id jsonValue = nil;
    if ((rawJSON = [[NSString alloc] initWithData:[self responseData] encoding:NSUTF8StringEncoding]) != nil) {
        SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
        if ((jsonValue = [jsonParser objectWithString:rawJSON]) == nil) {
            NSLog(@"This string doesn't seem to be JSON: '%@'\nraw Data : '%s'", rawJSON, (char *)[[self responseData] bytes]);
            return [self responseString];
        }
    }
    else {
        NSLog(@"This data doesn't seem to be an UTF8 encoded string: %@", [self responseData]);
        return [self responseString];
    }

    return jsonValue;
}
3 голосов
/ 23 января 2012

Пожалуйста, проверьте эту ссылку переполнения стека, я уже использовал службы JSON, это вам очень поможет. Вся кодировка есть.

Преобразование данных JSON

А вот учебник с примером проекта

Учебник по JSON Parse

Надеюсь, вы найдете это полезным

1 голос
/ 23 января 2012

Я настоятельно рекомендую вызвать SBJSON framework , это много раз экономило мое время, точно завершало мою работу и было легко использовать. Вам не нужно знать подробности алгоритма преобразования, просто скачайте и вызовите его.

Возможно, вы захотите скачать его с здесь , затем следуйте этому руководству , чтобы выполнить свои действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...