我看过了其他的库,但没有哪一个在我看来足够简单/最小化。这个库的所有想法就是尽可能地小
{
"middleName" = "Hatice"
"name" = "John"
"surname" = "Appleseed"
}
#import <MBJSONMapper/MBJSONSerializable.h>
@interface TestDataModel : NSObject <MBJSONSerializable>
@property (nonatomic, copy, readonly) NSString *name;
@property (nonatomic, copy, readonly) NSString *middleName;
@property (nonatomic, copy, readonly) NSString *surname;
@end
@implementation TestDataModel
// Nothing!
@end
{
"isItTrue" = 1
"middleName" = "Hatice"
"name" = "John"
"surname" = "Appleseed"
"nestedModel" = {
"middleName" = ""
"name" = "Nested"
"surname" = "John"
}
"nestedModels" = (
{
"middleName" = "1"
"name" = "John"
"surname" = "Dupont"
},
{
"middleName" = "2"
"name" = "John"
"surname" = "Dupont"
},
{
"middleName" = "3"
"name" = "John"
"surname" = "Dupont"
}
)
}
#import <MBJSONMapper/MBJSONSerializable.h>
@interface TestDataModel : NSObject <MBJSONSerializable>
@property (nonatomic, readonly) BOOL isItTrue;
@property (nonatomic, copy, readonly) NSString *name;
@property (nonatomic, copy, readonly) NSString *surname;
@property (nonatomic, copy, readonly) NSString *secondName;
@property (nonatomic, copy, readonly) NSString *nestedModelName;
@property (nonatomic, copy, readonly) TestDataModel *nestedModel;
@property (nonatomic, copy, readonly) NSArray<TestDataModel*> *nestedModels;
@end
@implementation TestDataModel
- (NSDictionary<NSString*, NSString*> *)keyPropertyMappingDictionary {
return @{@"nestedModel.name": NSStringFromSelector(@selector(nestedModelName)),
@"middleName": NSStringFromSelector(@selector(secondName))};
}
- (NSDictionary<NSString*, Class> *)keyClassMappingDictionary {
return @{NSStringFromSelector(@selector(nestedModel)): [TestDataModel class],
NSStringFromSelector(@selector(nestedModels)): [TestDataModel class]};
}
@end
这就完成了!
要运行示例项目,请克隆该仓库,然后首先从 Example 目录运行 pod install
命令。
MBJSONMapper 可以通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile
pod "MBJSONMapper"
Mert Buran, [email protected]
MBJSONMapper 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。