ios – 将JSON字符串解析为对象数组Objective C.

前端之家收集整理的这篇文章主要介绍了ios – 将JSON字符串解析为对象数组Objective C.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个从休息Web服务请求返回的 JSON字符串,
我想将这个字符串解析为确定类的对象数组,
这是JSON字符串
  1. [
  2. {
  3. "validationCode": null,"FirstName": "Samer","LastName": "Shame","MobileNumber": "0991992993","SimNumber": null,"Email": null,"PhoneNumber": "0991992994","Name": "Abo Alshamat","ID": 1
  4. },{
  5. "validationCode": null,"FirstName": "Ahmad","LastName": "Ali","MobileNumber": "0992993994","PhoneNumber": "0992993995","Name": "AL-Kamal","ID": 2
  6. },"FirstName": null,"LastName": null,"MobileNumber": "0993377800","PhoneNumber": null,"Name": "Abo-MAhmoud","ID": 12
  7. },"FirstName": "William","LastName": "Ammar","MobileNumber": "0993994995","PhoneNumber": "0993994996","Name": "Four Season","ID": 3
  8. },"FirstName": "Ammar","LastName": "William","MobileNumber": "0999555777","Name": "uuuuu","ID": 20
  9. },"MobileNumber": "0999888777","Name": "NewOneFromI2","ID": 18
  10. },"MobileNumber": "0999998997","PhoneNumber": "0999999998","Name": "JOURY","ID": 4
  11. },"MobileNumber": "202020","Name": "TestTestRestaurant,Ammar,Hamed","ID": 19
  12. }
  13. ]

我想从中获取实例的类是:

  1. @interface Restaurant : NSObject
  2. @property (nonatomic,strong) NSString *ID;
  3. @property (nonatomic,strong) NSString* FirstName;
  4. @property (nonatomic,strong) NSString* LastName;
  5. @property (nonatomic,strong) NSString* MobileNumber;
  6. @property (nonatomic,strong) NSString* simNumber;
  7. @property (nonatomic,strong) NSString* PhoneNumber;
  8. @property (nonatomic,strong) NSString* Name;
  9. @end

这样做的最佳方式是什么,对不起,问题可能来自基础知识,但我是客观C的新手

感谢您的时间.

解决方法

我建议为您的Restaurant类实现init方法.
  1. -(instancetype) initWithParameters:(NSDictionary*)parameters
  2. {
  3. self = [super init];
  4. if (self) {
  5. //initializations
  6. _validationCode = parameters[@"validationCode"]; // may be NSNull
  7. _firstName = [parameters[@"FirstName"] isKindOfClass:[NSNull class]] ? @""
  8. : parameters[@"FirstName"];
  9. ...
  10. }
  11. return self;
  12. }

注意:你可能有JSON Null的事实,使你的初始化有点复杂.当相应的JSON值为Null时,您需要决定如何初始化属性.

您的参数字典将是您从服务器获得的JSON数组中的第一级字典.

首先,创建一个JSON表示,即JSON中的NSArray对象:

  1. NSError* localError;
  2. id restaurantsObjects = [NSJSONSerialization JSONObjectWithData:data
  3. options:0
  4. error:&localError];

IFF这没有失败,你的restaurantsObjects现在应该是一个NSArray对象,包含餐厅作为NSDictionarys.

现在,将直接创建一个NSMutableArray,它将填充Restaurant对象:

  1. NSMutableArray* restaurants = [[NSMutableArray alloc] init];
  2. for (NSDictionary* restaurantParameters in restaurantsObjects) {
  3. Restaurant* restaurant = [Restaurant alloc] initWithParameters: restaurantParameters];
  4. [restaurants addObject:restaurant];
  5. }

最后,您可以在某个控制器中设置一个属性餐厅:

  1. self.restaurants = [restaurants copy];

猜你在找的iOS相关文章