首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在外套中使用子字典?

如何在外套中使用子字典?
EN

Stack Overflow用户
提问于 2015-12-04 22:22:38
回答 1查看 104关注 0票数 0

我决定使用Mantle来使用一些JSON端点,但是JSON的结构是不同的,这取决于您是GET对象还是POST对象。以用户端点为例:

当请求用户时,您会得到类似如下的响应:

代码语言:javascript
复制
{
    "random_meta_data": "whatever",
    "etc.": "etc.",
    "payload": {
        "username": "username",
        "email": "username@email.com",
        "etc.": "etc."
    }
}

在创建用户时,您需要发送如下内容:

代码语言:javascript
复制
{
    "username": "username",
    "email": "username@email.com",
    "etc.": "etc."
}

这不是一个难以解决的问题,但它似乎是一个足够常见的问题,Mantle应该能够为您解决它。

我知道我可以简单地用dictionary[@"payload"]初始化套子模型,但是Overcoat会自动为我做映射,如果我要手动做映射,我就不再利用Overcoat了。

所以我想知道是否有一种标准的方法可以用Mantle和/或Overcoat解决这个问题

EN

回答 1

Stack Overflow用户

发布于 2015-12-04 22:22:38

您正在描述的内容称为信封响应,您可以阅读有关如何在Overcoat README.md中处理这些响应的内容:

https://github.com/Overcoat/Overcoat#envelop-and-error-responses

App.net等其他服务使用信封响应,这是一个顶级的

响应,其中包含请求的数据和其他元数据。对于这些类型的服务,您必须创建自己的OVCResponse子类并指定数据键路径。

代码语言:javascript
复制
@interface AppDotNetResponse : OVCResponse
...
@end

@implementation AppDotNetResponse
+ (NSString *)resultKeyPathForJSONDictionary:(NSDictionary *)JSONDictionary 
{
    return @"data";
}
@end

然后,您可以通过覆盖+responseClass来指定要在客户端中使用的响应类。

代码语言:javascript
复制
+ (Class)responseClass {
    return [AppDotNetResponse class];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34090470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档