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
с неподтвержденными объектами, но в действительности они относятся к типу Персона.