ios - 使用 RestKit 发布多个对象(作为 JSON 数组)
<p><p>我正在尝试使用 <code>RestKit</code> 将多个对象作为数组发送到服务器。不幸的是,我不能这样做。<br/>
遵循我非常简单的对象以及 RestKit 的映射:</p>
<h3>示例对象</h3>
<pre><code>@interface MyExampleObject : NSObject
@property NSString *key;
@property NSString *value;
@end
</code></pre>
<h3>Array-Object 包含多个 MyExampleObject</h3>
<pre><code>@interface MyArray : NSObject
@property NSArray *array;
@end
</code></pre>
<h3>映射</h3>
<pre><code>RKObjectMapping *mappingObject = ];
[mappingObject addAttributeMappingsFromDictionary:@{
@"key" : @"key",
@"value" : @"value"
}];
RKObjectMapping *mappingArray = ];
];
</code></pre>
<p>如果我这样做,我会得到以下结果:</p>
<pre><code>{
"dummy" : [
{
"key" : "MyKey1",
"value" : "MyValue1"
},
{
"key" : "MyKey2",
"value" : "MyValue2"
}
]
}
</code></pre>
<p>但我只想要没有“键”的数组。像这样:</p>
<pre><code>[
{
"key" : "MyKey1",
"value" : "MyValue1"
},
{
"key" : "MyKey2",
"value" : "MyValue2"
}
]
</code></pre>
<p>将 <code>relationshipMappingFromKeyPath</code> 更改为 <code>nil</code> 对我来说似乎很明显。但这不起作用(得到 <code>setObjectForKey: key cannot be nil</code> 错误)。</p>
<p>如何将多个 <code>MyExampleObjects</code> 作为 JSON 数组发送到我的服务器?</p>
<h2>解决方案:</h2>
<p>作为 <a href="https://stackoverflow.com/users/1988185/wain" rel="noreferrer noopener nofollow">Wain</a>建议我删除了我的“顶部映射”。在最终映射之后:</p>
<pre><code>RKObjectMapping *mappingObject = ];
[mappingObject addAttributeMappingsFromDictionary:@{
@"key" : @"key",
@"value" : @"value"
}];
</code></pre>
<p>当我将这些东西发布到我的服务器时,我只是做这样的事情:</p>
<pre><code>NSArray *array = ;
[ postObject:array path:@"/myPath/" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
...
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>只需去掉 <code>MyArray</code> 对象和关联的映射,直接将 <code>MyExampleObject</code> 的 <code>NSArray</code> 传递给 post 方法即可。 RestKit 会理解它是一个对象数组来映射并做正确的事情。</p></p>
<p style="font-size: 20px;">关于ios - 使用 RestKit 发布多个对象(作为 JSON 数组),我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/26467385/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/26467385/
</a>
</p>
页:
[1]