Как преобразовать массив JSON в NSArray - PullRequest
0 голосов
/ 02 февраля 2012

У меня были проблемы с поиском, как преобразовать массив JSON в NSArray.

У меня есть скрипт php, который создает массив, который преобразуется в JSON, который затем отправляется и сохраняется в NSString.это выглядит так:

[1,2,3,4]

Моя проблема заключается в том, что мне нужно превратить это в NSArray of int.Как можно это сделать?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 02 февраля 2012

Вы должны посмотреть документацию по классу NSJSONSerialization .

Вы можете передать ему NSData, полученный от удаленного вызова, который является строкой в ​​формате JSON, и получить массивили словарь, который он содержит.

NSObject *o =[NSJSONSerialization JSONObjectWithData:data 
                                             options:NSJSONReadingMutableContainers 
                                               error:&error];

// other useful "options":
// 0 
// NSJSONReadingMutableLeaves
// NSJSONReadingMutableLeaves | NSJSONReadingMutableContainers

, вам следует проверить, что o относится к типу, который вы ожидаете для целей здравомыслия

4 голосов
/ 02 февраля 2012

Если бы я хотел быстро разбить это на массив, я бы сделал это так:

NSString * jstring = @"[1,2,3,4]";  //your json string

jstring = [jstring stringByReplacingOccurrencesOfString:@"[" withString:@""];
jstring = [jstring stringByReplacingOccurrencesOfString:@"]" withString:@""];

NSArray * intArray = [string componentsSeparatedByString:@","];



//you could create your int from the array like this
int x = [[intArray objectAtIndex:0]intValue];
0 голосов
/ 02 февраля 2012

Импорт SBJson в ваш проект (перетащите его)

#import "SBJson.h"

Затем вы получите ответ JSON из php-файла

NSArray *array = [responseString JSONValue];
...