gpt4 book ai didi

ios - RestKit:如何在映射前预处理 JSON 值

转载 作者:行者123 更新时间:2023-11-28 22:27:29 27 4
gpt4 key购买 nike

目前我使用的是以下 JSON 格式,它是 SharePoint REST 服务的一个片段:

{results:[
{uri:"https://site.com/_api/Web/Lists(guid'43963c38-4d1c-4734-8b2d-22dc0b92908c')"},
{uri:"https://site.com/_api/Web/Lists(guid'5363c738-7d9d-9774-6b2d-52dc0b93903d')"}]
}

我有以下对象映射:

RKEntityMapping *listMapping = [RKEntityMapping mappingForEntityForName:@"SPList" 
inManagedObjectStore:managedObjectStore];
[listMapping addAttributeMappingsFromDictionary:@{
@"uri": @"guid"}];
listMapping.identificationAttributes = @[@"guid"];

但是,在保存到 guid 之前,我想添加逻辑以在保存之前仅从 uri 检索 guid 部分,因此只有“43963c38-4d1c-4734-8b2d-22dc0b92908c”存储在 guid 字段中。我不知道在哪里添加该逻辑,任何人都可以帮助我吗?

最佳答案

如果您需要在映射之前更改返回的 JSON,您可以使用 RKSerialization 的实现:

@interface ORRKJsonSerialization : NSObject <RKSerialization>
@end

和实现

@implementation ORRKJsonSerialization

+ (id)objectFromData:(NSData *)data error:(NSError **)error
{
id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:error];
// change your data before mapping
return result;
}

+ (NSData *)dataFromObject:(id)object error:(NSError **)error
{
return [NSJSONSerialization dataWithJSONObject:object options:0 error:error];
}

@end

然后在设置过程中:

[RKMIMETypeSerialization registerClass:[ORRKJsonSerialization class] forMIMEType:@"application/json"];

HTH

关于ios - RestKit:如何在映射前预处理 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508326/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com