我目前正在开发一个Android应用程序,它将一些请求发送到一个在Ruby On Rails中完成的API。
我必须提出请求,其中一个参数是ArrayList<Integer>
。我这样传递:
ArrayList<Integer> userIds = ...;
//...
RequestParams params = new RequestParams();
params.put("conversation[user_ids]", userIds);
当我发送请求时,API会将此数组作为哈希值获取。如果我的userIds
是:
[1,2]
我获得的API中的
"user_ids"=>{"0"=>"1", "1"=>"2"}
我真正想要的是
"user_ids"=>{[1,2]}
或类似的东西。
我如何向API发送ArrayList<Integer>
,以便它可以被它识别为ruby中的数组而不是哈希?为此,我无法修改服务器中的ruby代码,只能修改android app中的客户端。
答案 0 :(得分:1)
如果你想通过转换收到的参数来从后端点(ROR)修复它,可以使用一些ruby代码轻松完成:
{"0"=>"1", "1"=>"2"}.values.map(&:to_i)
# > [1,2]
答案 1 :(得分:0)
我对Android知之甚少,但要将整数数组传递给rails,你可以使用
conversation[user_ids][]=1&converstaion[user_ids][]=2&conversation[user_ids][]=3
所以我猜你可以迭代ArrayList
然后
params.put("conversation[user_ids][]", integer_member);
对于数组的每个成员。