私は最近同じことをしようとしています:)最終的にサーバーに接続できるようにマッピングを保持したかっただけでなく、オブジェクトをファイルにシリアル化するためにそれらを再利用したかったのです。
これは、inverseMapping を使用し、RKMappingOperation を介して実行しました。
最初に JSON からのマッピングを設定します -> Core Data Object
RKEntityMapping mapping = [RKEntityMapping mappingForEntityForName:@"MyManagedObject" inManagedObjectStore:rkManagedObjectStore];
[self.nodeMapping addAttributeMappingsFromDictionary:@{
@"userid": @"id",
@"first_name": @"name",
@"age": @"age"
}];
次に、逆マッピングを使用して、オブジェクト インスタンス (「myObject」など) を辞書にマップします。
NSMutableDictionary *jsonDict = [NSMutableDictionary dictionary];
RKObjectMappingOperationDataSource *dataSource = [RKObjectMappingOperationDataSource new];
RKMappingOperation *operation = [[RKMappingOperation alloc] initWithSourceObject:myObject
destinationObject:jsonDict
mapping:[mapping inverseMapping]];
operation.dataSource = dataSource;
NSError *error = nil;
[operation performMapping:&error];
エラーがないと仮定すると、辞書をシリアル化できます。
NSData *data = [RKMIMETypeSerialization dataFromObject:jsonDict
MIMEType:RKMIMETypeJSON
error:&error];
そこから何をしたいのかわかりませんが、それを文字列に出力したい場合は、次のことができます。
NSString *jsonString = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding]
それが役立つことを願っています