使用Restkits RKObjectMapping构造自定义json

时间:2012-07-12 15:42:03

标签: objective-c ios json restkit

我正在尝试使用Restkit通过我的ios应用程序中的RESTful API创建一个所谓的数据流。 为此,API需要以下json POST:

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

如您所见,API接受数据流数组,但我想要做的是从单个数据流对象生成此json代码。

我想要创建的数据流在我的应用程序中表示为具有以下属性的对象:

  • 版本
  • 标识符
  • CurrentValue的

我应该如何设置RKObjectMapping对象,以便下面的代码构造并将上面的json发送到我的API? (假设路线和所有其他初始东西已经设定)

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

1 个答案:

答案 0 :(得分: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];
}];