BWObjectMapping 0.0.1

BWObjectMapping 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布最新发布2014年12月

未指明 维护。



  • 作者:
  • Bruno Wernimont

一个小型库,可以解析 JSON 并将其映射到任何对象,支持 NSManagedObject。

示例对象接口

@interface User : NSObject

@property (nonatomic, strong) NSNumber *userID;
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSDate *createdAt;

@end

映射

[BWObjectMapping mappingForObject:[User class] block:^(BWObjectMapping *mapping) {
    [mapping mapPrimaryKeyAttribute:@"id" toAttribute:@"userID"];
    [mapping mapKeyPath:@"first_name" toAttribute:@"firstName"];
    [mapping mapKeyPath:@"created_at" toAttribute:@"createdAt"];                
    [[BWObjectMapper shared] registerMapping:mapping withRootKeyPath:@"user"];
}];

在最末行我们注册了映射并给出根键路径。您不必一定有它,但是如果没有,映射器将无法猜测要使用哪个映射类。

对象创建

[[BWObjectMapper shared] objectWithBlock:^id(Class objectClass, NSString *primaryKey, id primaryKeyValue, id JSON) {
    return [[objectClass alloc] init];
}];

JSON

{
    "user": [{
        "id": 1,
        "first_name": "Bruno",
        "created_at": "2012-08-10T06:12:28Z"
    }]
}

默认解析日期格式是 Rails 格式。

将 JSON 映射到对象

NSArray *objects = [[BWObjectMapper shared] objectsFromJSON:JSON];

因为 JSON 包含根键路径,映射自动发现。

所有映射方法

- (NSArray *)objectsFromJSON:(id)JSON withMapping:(BWObjectMapping *)mapping;

- (NSArray *)objectsFromJSON:(id)JSON withObjectClass:(Class)objectClass;

- (NSArray *)objectsFromJSON:(id)JSON;

- (id)objectFromJSON:(id)JSON withMapping:(BWObjectMapping *)mapping;

- (id)objectFromJSON:(id)JSON withMapping:(BWObjectMapping *)mapping existingObject:(id)object;

- (id)objectFromJSON:(id)JSON withObjectClass:(Class)objectClass;

- (id)objectFromJSON:(id)JSON withObjectClass:(Class)objectClass existingObject:(id)object;

- (id)objectFromJSON:(id)JSON;

- (id)objectFromJSON:(id)JSON existingObject:(id)object;

关于日期格式的说明

如果您不使用 Rails 日期格式,您有两个选项

  1. 指定全局日期格式

    [objectMapping mapKeyPath:@"created_at" toAttribute:@"createdAt" dateFormat:@""];

  2. 在每个属性上自定义日期格式。

    [[BWObjectMapper shared] setDefaultDateFormat:@""];

安装

将 BWObjectMapper 目录复制到您的 项目 中。

ARC

BWObjectMapper 是 ARC 的。

待办事项

  • 处理关系(有多少,有一个,……)

联系

Bruno Wernimont