6

我有一个 Web 服务,它返回一个对象的 JSON,并且在该对象中有一个其他对象的列表。我怎样才能让 Mantle 为这些嵌套对象中的每一个创建一个对象,而不是为每个嵌套对象给我一本字典?

4

1 回答 1

12

这可以使用mtl_JSONDictionaryTransformerWithModelClass:Mantle 前段时间引入的变压器来完成。

让我们看一下取自Mantle 项目自述文件本身的示例:

@interface GHIssue : MTLModel <MTLJSONSerializing>

@property (nonatomic, strong, readonly) GHUser *assignee;

@end
@implementation GHIssue

+ (NSDictionary *)JSONKeyPathsByPropertyKey {
    return @{
        @"assignee": @"assignee",
    };
}

+ (NSValueTransformer *)assigneeJSONTransformer {
    return [NSValueTransformer mtl_JSONDictionaryTransformerWithModelClass:[GHUser class]];
}

@end

假设GHUserMTLModel符合MTLJSONSerializing协议的子类,一切都应该完美运行。

更新:上述解决方案现已弃用。现在使用的正确方法是

return [MTLJSONAdapter dictionaryTransformerWithModelClass:GHUser.class];

在“assigneeJSONTransformer”方法中。

于 2013-08-15T18:24:45.007 回答