在POST RequestParams AsyncHttpClient Android App中发送int数组

时间:2014-09-12 18:20:53

标签: java android ruby-on-rails ruby arrays

我目前正在开发一个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中的客户端。

2 个答案:

答案 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);

对于数组的每个成员。