我正在使用RestKit将对象发布到服务器。 该对象包含一个NSArray,在将其添加到参数列表(NSDictionary)之前我将其转换为NSDictionaries
NSDictionary queryParams看起来像这样(使用NSLog打印出来,为清晰起见删除了一些字段)
requestParams = {
"app_version" = "v1.0(1.006)";
"extended_information" = {
"travel_locations" = (
{
"Aircard_or_Tablet" = 0;
Country = "United States";
"End_Date" = "04/12/2013";
"Start_Date" = "03/12/2013";
}
);
"using_voice" = 0;
};
}
然后我发送它:[objectManager postObject:nil path:server_path parameters:requestParams success:… failure:…]
问题在于,当RestKit创建查询字符串时,它似乎会增加字典中每个键的计数器,而不是数组中的每个项目。以下是服务器收到的内容。为清晰起见,我在每个参数后添加了一个换行符:
app_version=v1.0(1.006)
&extended_information[travel_locations][0][Aircard_or_Tablet]=0
&extended_information[travel_locations][1][Country]=United States
&extended_information[travel_locations][2][End_Date]=04/12/2013
&extended_information[travel_locations][3][Start_Date]=03/12/2013
&extended_information[using_data]=0
服务器期望(我希望)对于那个对象中的所有键,travel_locations保持为[0],如下所示:
app_version=v1.0(1.006)
&extended_information[travel_locations][0][Aircard_or_Tablet]=0
&extended_information[travel_locations][0][Country]=United States
&extended_information[travel_locations][0][End_Date]=04/12/2013
&extended_information[travel_locations][0][Start_Date]=03/12/2013
&extended_information[using_data]=0
当然,如果第二个travel_location存在[1],第三个将[2],等等。
这是RestKit中的错误吗?有没有更好的方法可以发送此请求以使其正常工作?我没有更改服务器的选项。
要问的是: 如何让RestKit正确转换NSDictionary的参数,以便它不会增加数组对象中每个键的数组索引标识符?
谢谢, -Nico