如何从android发送长数组到PHP服务器

时间:2013-02-15 01:25:43

标签: php android json

我尝试通过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数组的任何方法。 如果有人能解决这个问题或提出另一种方法,我感激不尽。

由于

1 个答案:

答案 0 :(得分:3)

我解决了这个问题。我跳过的东西是解码在android部分编码的json数组。因此,在获得发布的数据后,需要像这样解码;

$list = $_POST['list'];

$obj = json_decode($list);

然后我可以使用$ obj作为数组。