如何使用JSONModel解析这样的JSON?
[{
"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文件中没有“animals”键,我该怎么办?
答案 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);
如果有帮助,请告诉我。
答案 1 :(得分: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"]];
}
答案 2 :(得分:0)
您可以尝试将模型创建为集合
NSArray *jsonArray = //Array of Dictionaries
NSMutableArray *arrayOfModels = [AnimalObject arrayOfModelsFromDictionaries:jsonArray];