2014-10-16 4 views
0

Как разобрать такой JSON с помощью JSONModel?JSONModel - как разобрать этот файл?

[{ 
    "Value": "Cat", 
    "Id": 1 
}, { 
    "Value": "Dog", 
    "Id": 2 
}, { 
    "Value": "Elephant", 
    "Id": 3 
}] 

, если есть что-то вроде этого:

{ 
    animals: [{ 
     "Value": "Cat", 
     "Id": 1 
    }, { 
     "Value": "Dog", 
     "Id": 2 
    }, { 
     "Value": "Elephant", 
     "Id": 3 
    }] 
} 

Там не будет никаких проблем. Я бы просто использовать:

@property (strong, nonatomic) NSArray <AnimalModel> *animalsArray; 

Но что я могу сделать, если я не имею ключ «животные» в файле формата JSON?

+0

Я отправил ответ на вашу помощь. Пожалуйста, дайте мне знать, если он используется. – madLokesh

+0

Этот вопрос уже много раз ответил на переполнение стека. –

ответ

0

Поскольку вы хотите использовать первую модель вместо второй, у вас нет объектных ключей, но у вас есть массивы значений с парами ключ-значение. Ваш полный JSON будет инициализирован как NSArray, а не NSDictionary. Вы можете попробовать следующее :

-(void)loadJSON{ 
    /* * * * NSURLRequest to fetch the json in NSData format * * */ 

//Parsing JSONData 
NSError *err; 
if(responseData != nil){ 

    NSArray *JSONParser = [NSJSONSerialization jsonObjectWithData:responseData options:kNilOptions error:&err]; 
    if(!err){ 

      [key1MutableArray addObject:[JSONParser valueForKey:@"Value"]]; 
      [key2MutableArray addObject:[JSONParser valueForKey:@"Id"]];   
    }else{ 
      NSLog(@"JSON Error: %@", err.localisedDescription); 
    } 
    }else{ 
      NSLog(@"responseData is NIL"); 
    } 
} 
     NSLog(@"%@", key1MutableArray); 
}  NSLog(@"%@", key2MutableArray); 

Сообщите мне, если это поможет.

+0

Это не совсем то, чего я хотел бы достичь. Вы используете NSJSONSerialization. Я хотел бы использовать методы JSONModel для анализа этого файла. Но все равно спасибо. –

+0

Пожалуйста, сообщите нам, почему вы хотите использовать некоторую стороннюю библиотеку вместо библиотеки, встроенной в iOS и MacOS X, которую каждый использует, и что все знают? – gnasher729

+0

Я использую JSONModel, потому что он может легко преобразовать коллекцию модели json в определенные объекты или массив определенных объектов. Я не уверен, возможно ли это в NSJSONSerialization. –

0

Для второго ответа json ниже приведен код.

id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 

    NSArray *array = (NSArray *)jsonObject; 
    for(int i=0;i<[array count];i++) 
    { 
     dict = [array objectAtIndex:i]; 
     [valueArray addObject:[dict objectForKey:@"Value"]]; 
     [idArray addObject:[dict objectForKey:@"Id"]]; 
    } 
0

Вы могли бы попробовать создать модели как коллекция

NSArray *jsonArray = //Array of Dictionaries 
NSMutableArray *arrayOfModels = [AnimalObject arrayOfModelsFromDictionaries:jsonArray]; 
Смежные вопросы