MBJSONMapper 0.2.7

MBJSONMapper 0.2.7

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2016 年 8 月

Mert Buran 维护。



为什么还需要另一个 JSON 对象库??

我看过了其他的库,但没有哪一个在我看来足够简单/最小化。这个库的所有想法就是尽可能地小

  1. 2 个公共头文件
    1. 1 个协议
    2. 1 个适配器
  2. 所有 .m 文件的总行数:186

用法

基本用法

JSON

{
    "middleName" = "Hatice"
    "name" = "John"
    "surname" = "Appleseed"
}

TestDataModel.h

#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

TestDataModel.m

@implementation TestDataModel
// Nothing!
@end

高级用法

JSON

{
    "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"
        }
    )
}

TestDataModel.h

#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

TestDataModel.m

@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 文件。