2012-07-12 70 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