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"}]}
如何提取每个“ car
” JSON 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
将为您完成整个分配工作。