我决定使用Mantle来使用一些JSON端点,但是JSON的结构是不同的,这取决于您是GET对象还是POST对象。以用户端点为例:
当请求用户时,您会得到类似如下的响应:
{
"random_meta_data": "whatever",
"etc.": "etc.",
"payload": {
"username": "username",
"email": "username@email.com",
"etc.": "etc."
}
}在创建用户时,您需要发送如下内容:
{
"username": "username",
"email": "username@email.com",
"etc.": "etc."
}这不是一个难以解决的问题,但它似乎是一个足够常见的问题,Mantle应该能够为您解决它。
我知道我可以简单地用dictionary[@"payload"]初始化套子模型,但是Overcoat会自动为我做映射,如果我要手动做映射,我就不再利用Overcoat了。
所以我想知道是否有一种标准的方法可以用Mantle和/或Overcoat解决这个问题
发布于 2015-12-04 22:22:38
您正在描述的内容称为信封响应,您可以阅读有关如何在Overcoat README.md中处理这些响应的内容:
https://github.com/Overcoat/Overcoat#envelop-and-error-responses
App.net等其他服务使用信封响应,这是一个顶级的
响应,其中包含请求的数据和其他元数据。对于这些类型的服务,您必须创建自己的OVCResponse子类并指定数据键路径。
@interface AppDotNetResponse : OVCResponse
...
@end
@implementation AppDotNetResponse
+ (NSString *)resultKeyPathForJSONDictionary:(NSDictionary *)JSONDictionary
{
return @"data";
}
@end然后,您可以通过覆盖+responseClass来指定要在客户端中使用的响应类。
+ (Class)responseClass {
return [AppDotNetResponse class];
}https://stackoverflow.com/questions/34090470
复制相似问题