我尝试通过JSON将长数组从android发送到PHP。我用Javascript做了同样的事情并且工作但是使用JAVA它会让人感到困惑。当我发送参数时,长数组列表会发生变化。
这是创建列表的部分。
JSONArray list = new JSONArray();
for (int i = 0; i < users.size(); i++) {
list.put(users.get(i).getId());
}
这是JAVA中发送数据的代码。
public JSONObject sendFacebookFriendList(JSONArray list) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("list", list.toString()));
JSONParser jsonParser = new JSONParser();
JSONObject json = jsonParser.getJSONFromUrl(accountServer, params);
return json;
}
这是用PHP接收数据的代码。
$list = $_POST['list'];
$result = array("success" => 1, "list" => $list);
使用Javascript发送时,$ list变量直接变为长数组,但我无法以相同的方式发送它与JAVA。
当我从PHP发送列表回到JAVA而没有任何改变时,我看到每个数组元素都有\&#34;在头部和末端
所以这个清单:
list= ["517565130","523709375","524503024","524620558","524965930", ...
成为这个:
"list":"[\"517565130\",\"523709375\",\"524503024\",\"524620558\", ...
所以我无法在PHP中解析这个数组。
我无法找到以正确方式发送long / int数组的任何方法。 如果有人能解决这个问题或提出另一种方法,我感激不尽。
由于
答案 0 :(得分:3)
我解决了这个问题。我跳过的东西是解码在android部分编码的json数组。因此,在获得发布的数据后,需要像这样解码;
$list = $_POST['list'];
$obj = json_decode($list);
然后我可以使用$ obj作为数组。