0

現在、SharePoint REST サービスのスニペットである次の JSON 形式を使用しています。

{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の部分だけを取り出すロジックを追加したいので、guidフィールドには「43963c38-4d1c-4734-8b2d-22dc0b92908c」しか格納されません。そのロジックをどこに追加すればよいかわかりません。誰か助けてもらえますか?

4

1 に答える 1

2

返された 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

于 2014-04-04T14:17:59.640 に答える