JSONModel NSArray ConvertOnDemand

Как я могу создать ConvertOnDemand 'NSArray *', используя библиотеку JSONModel из следующего ответа JSON: -

[
 {"id": 1, "name": "jim"},
 {"id": 2, "name": "lovy"}
]

Пожалуйста, отметьте здесь, если вы хотите узнать больше JSONModel ConvertOnDemand ( https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8).

3 ответа

Если вы открыты для использования нативного Foundation рамки вместо этого, вы могли бы сделать что-то вроде этого

NSArray *arr = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&err];

Если ваш JSON находится в форме строки, просто преобразуйте в NSData прежде чем позвонить выше

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];

Это решение даст вам NSArray из NSDictionaries

Может быть, BWJSONMatcher это то, что вы ищете.

Объявите вашу модель данных, которая соответствует вашей строке json:

@interface YourDataModel : NSObject
@property (nonatomic, assign) NSInteger id;
@property (nonatomic, strong) NSString *name;
@end

Затем вы можете использовать BWJSONMatcher для преобразования строки json в NSArray, который можно напрямую использовать в ваших ViewControllers.

NSArray *jsonArray = [BWJSONMatcher matchJSON:jsonString withClass:[YourDataModel class]];

ConvertOnDemand является необязательным для класса вашей модели, если ваш класс сущности - это класс Person, объявите свойство массива следующим образом:

@property (nonatomic, strong) NSArray<Person, ConvertOnDemand> *persons;

@property (nonatomic, strong) NSArray<Person> *persons;

Для первого тип массива персон JSONModelArray[Person], это просто означает, что весь объект person соответствует протоколу Person. Для более позднего типа NSArray с неподтвержденными объектами, но в действительности они относятся к типу Персона.

Другие вопросы по тегам