2012-07-12 68 views
1

我试图通过使用Restkit的ios应用程序通过RESTful API创建所谓的数据流。 要做到这一点,该API预计以下JSON POST:使用Restkits构建自定义json RKObjectMapping

{"version":"1.0.0", 
    "datastreams" : [ 
    { 
     "current_value" : "100", 
     "id" : "1" 
    } 
    ] 
} 

正如你所看到的,API接受数据流的数组,但希望我想要做的就是从单个数据流对象此JSON代码。

我要创造,我为具有以下属性的对象应用程序所代表的数据流:

  • 版本
  • 标识
  • CurrentValue的

我应该怎样建立RKObjectMapping对象,所以下面的代码构造并发送上述json到我的API? (Asuming路由和所有其他初始内容已经设置)

Datastream *datastream = [[ZCCDatastream alloc] init]; 
datastream.version = @"1.0.0"; 
datastream.currentValue = @"100"; 
datastream.identifier = @"1"; 
[[RKObjectManager sharedManager] postObject:datastream delegate:self]; 

回答

0

您需要配置Datastream的序列化映射。尝试这样的:

[[RKObjectManager sharedManager] postObject: datastream usingBlock: ^(RKObjectLoader *loader) { 
    RKObjectMapping* mapping = [RKObjectMapping mappingForClass: [Datastream class]]; 
    [mapping mapAttributes: @"version", nil]; 

    //etc. 

    loader.delegate = self; 
    loader.serializationMapping = mapping inverseMapping]; 
}]; 
+0

谢谢你的回答!在我的代码中,我有一个想创建的(1)Datastream对象,但是json API接受一组数据流。问题是:我应该取代什么“等”在你的代码中构建我发布的确切json结构?这甚至可能没有创建一个包含数据流数组的包装类? – jonik 2012-07-13 07:30:29

+0

查看我的回答[this](http://stackoverflow.com/questions/11497335/how-to-serialize-a-flattened-object-back-to-server-unflattened-in-restkit)问题 – 2012-07-16 07:07:05