Objective-C JSON – 将JSON对象转换为本机对象?

{"status": "FRE", "list": [{"make": "Toyota", "id": 1, "model": "camry", "engine": "Four Cylinder"}{"make": "Ford", "id": 3, "model": "focus", "engine": "Four Cylinder"}]} 

如何提取每个“ carJSON object并将其放入本机object ? 我正在使用SBJSON 。 这是我当前的代码,但它只能提取一个car元素,当我需要能够遍历每个car对象并保存它时:

 NSString *responseString = [request responseString]; NSString *responseDict = [responseString JSONValue]; NSArray *keys = [NSArray arrayWithObjects:@"id",@"make",@"model",@"engine", nil]; NSArray *objects = [NSArray arrayWithObjects:[responseDict valueForKeyPath:@"list.make"],[responseDict valueForKeyPath:@"list.model"],[responseDict valueForKeyPath:@"list.id"],[responseDict valueForKeyPath:@"list.engine"] , nil]; self.car = [[NSDictionary alloc]initWithObjects:objects forKeys:keys]; 

尝试这样的理由..当你做[[[request responseString] JSONValue] valueForKey:@"list"]]; 它将返回一系列cars列表。

然后迭代每个array并将其保存到您的car元素中……

例:

 NSArray *arrayCar = [NSArray arrayWithArray:[[[request responseString] JSONValue] valueForKey:@"list"]]; for (NSDictionary *carDict in arrayCar) { Car car = [[Car alloc] init]; car.id = [carDict valueForKey:@"id"]; car.origin= [carDict valueForKey:@"make"]; ... ... } 

而不是手动完成所有操作,使用Jastor – https://github.com/elado/jastor您只需要创建简单的类, initWithDictionary将为您完成整个分配工作。